package fr.openwide.core.export.test.export;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import fr.openwide.core.export.excel.AbstractExcelTableExport;
import fr.openwide.core.export.excel.ColumnInformation;
import fr.openwide.core.export.test.person.Person;
public class PersonHSSFExport extends AbstractExcelTableExport {
public PersonHSSFExport() {
super(new HSSFWorkbook());
// C'est entre l'appel au constructeur et le init()
// qu'il faut surcharger les couleurs et les polices
setFontName("Calibri");
setNormalFontHeight((short) 10);
setHeaderFontHeight((short) 12);
setHeaderFontColor("#FFFFFF");
init();
}
public HSSFWorkbook generate(List<Person> persons, List<ColumnInformation> columnsInfos) {
HSSFSheet sheet = (HSSFSheet) createSheet("Feuille 1");
int rowIndex = 0;
addHeadersToSheet(sheet, rowIndex, columnsInfos);
rowIndex++;
for (Person person : persons) {
HSSFRow currentRow = sheet.createRow(rowIndex);
rowIndex++;
int columnIndex = 0;
for (ColumnInformation columnInfo : columnsInfos) {
addCell(currentRow, columnIndex, person, columnInfo.getHeaderKey());
columnIndex++;
}
}
finalizeSheet(sheet, columnsInfos);
return (HSSFWorkbook) workbook;
}
private void addCell(HSSFRow currentRow, int columnIndex, Person person, String column) {
if ("username".equals(column)) {
addTextCell(currentRow, columnIndex, person.getUserName());
} else if ("firstname".equals(column)) {
addTextCell(currentRow, columnIndex, person.getFirstName());
} else if ("lastname".equals(column)) {
addTextCell(currentRow, columnIndex, person.getLastName());
} else if ("birth date".equals(column)) {
addDateCell(currentRow, columnIndex, person.getBirthDate());
} else if ("birth hour".equals(column)) {
addDateTimeCell(currentRow, columnIndex, person.getBirthDate());
} else if ("age".equals(column)) {
addIntegerCell(currentRow, columnIndex, person.getAge());
} else if ("size".equals(column)) {
addDecimalCell(currentRow, columnIndex, person.getSize());
} else if ("percentage".equals(column)) {
addPercentCell(currentRow, columnIndex, person.getPercentage());
}
}
@Override
protected String getLocalizedLabel(String key) {
return key;
}
}