package fr.openwide.core.export.test.export; import java.util.List; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import fr.openwide.core.export.excel.AbstractExcelTableExport; import fr.openwide.core.export.test.person.Person; public class PersonXSSFExport extends AbstractExcelTableExport { public PersonXSSFExport() { super(new XSSFWorkbook()); // 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 XSSFWorkbook generate(List<Person> persons, List<String> columns) { XSSFSheet sheet = (XSSFSheet) createSheet("Document .xlsx"); int rowIndex = 0; addHeadersToSheet(sheet, rowIndex, columns); rowIndex++; for (Person person : persons) { XSSFRow currentRow = sheet.createRow(rowIndex); rowIndex++; int columnIndex = 0; for (String column : columns) { addCell(currentRow, columnIndex, person, column); columnIndex++; } } finalizeSheet(sheet, columns); return (XSSFWorkbook) workbook; } private void addCell(XSSFRow 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; } }