package plugins.archiveexportimport;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import org.molgenis.util.CsvFileReader;
import org.molgenis.util.Tuple;
import app.ExcelExport;
public class ExcelWriterNoExportDataElement extends ExcelExport
{
/**
* Override to not export DataElements
*/
@Override
public void copyCsvToWorkbook(String sheetName, File file, WritableWorkbook workbook,
WritableCellFormat headerFormat, WritableCellFormat cellFormat) throws Exception
{
if (!sheetName.equals("DecimalDataElement") && !sheetName.equals("TextDataElement") && file.exists())
{
// Create sheet
WritableSheet sheet = workbook.createSheet(sheetName, sheetIndex);
// Parse CSV file to tuples TODO: batch this
final List<Tuple> tuples = new ArrayList<Tuple>();
for (Tuple tuple : new CsvFileReader(file))
{
tuples.add(tuple);
}
// Add and store headers
List<String> tupleFields = new ArrayList<String>();
for (int i = 0; i < tuples.get(0).getFields().size(); i++)
{
tupleFields.add(tuples.get(0).getFields().get(i));
Label l = new Label(i, 0, tuples.get(0).getFields().get(i), headerFormat);
sheet.addCell(l);
}
// Add cells
int rowIndex = 1;
for (Tuple t : tuples)
{
for (int i = 0; i < tupleFields.size(); i++)
{
if (!(t.getObject(tupleFields.get(i)) == null))
{
Label l = new Label(i, rowIndex, t.getObject(tupleFields.get(i)).toString(), cellFormat);
sheet.addCell(l);
}
else
{
sheet.addCell(new Label(i, rowIndex, "", cellFormat));
}
}
rowIndex++;
}
sheetIndex++;
}
}
}