Ich möchte ein Excel-Dokument mit 5 Blättern erstellen, die Daten für die Blätter sind dynamisch und ich habe ein maximales Zeilenlimit. Derzeit erstellt mein Ansatz ein Blatt nach dem anderen und füllt es mit Daten. Ich überprüfe, ob maximale Zeilen überschritten wurden, und erstelle ein neues Excel-Dokument. Dies wird jedoch nicht zu überprüfen, warten, wenn die anderen Blätter übersteigen auch die maximale Zeilenlimit, bevor die neue Arbeitsmappe ErstellenErstellen einer Excel-Datei mit Java und POIExcel util, wenn die Anzahl der Zeilen überschritten wurde
Meine Codebeispiele
private void populateDetailsSheets(String[] data) throws IOException
{
currentRow = getCurrentRow();
rowCount++;
short cellNumber = 0;
for (String value : data)
{
POIExcelUtil.createCellWithContent(currentRow,value,cellNumber++).setCellStyle(contentStyle);
}
writeToFileOnExhaustingMaxRows();
}
private void writeToFileOnExhaustingMaxRows() throws IOException
{
if(sheet.getLastRowNum() + 2 > Integer.valueOf(SystemProperty.MAX_RECORDS_PER_EXCEL))
{
writeToFile();
rowCount = 0;
createWorkbook();
titleStyle = createTitleStyle();
headerStyle = createHeaderStyle();
columnHeaderStyle = createColumnHeaderStyle();
columnHeaderStyle.setBorderLeft(CellStyle.BORDER_MEDIUM);
columnHeaderStyle.setBorderTop(CellStyle.BORDER_MEDIUM);
columnHeaderStyle.setBorderRight(CellStyle.BORDER_MEDIUM);
columnHeaderStyle.setBorderBottom(CellStyle.BORDER_MEDIUM);
contentStyle = createCellStyle();
contentStyle.setBorderLeft(CellStyle.BORDER_THIN);
contentStyle.setBorderTop(CellStyle.BORDER_THIN);
contentStyle.setBorderRight(CellStyle.BORDER_THIN);
contentStyle.setBorderBottom(CellStyle.BORDER_THIN);
rowCount = 0;
createSheet("title sheet");
populateReportSettingsSheet();
rowCount =0;
createSheet(sheetNames[index]);
setColumnWidth();
createColumnHeader();
}
}
Ich möchte warten, bis alle meine 4 Blätter erstellt und gefüllt wurden, bevor ich mich um die zusätzlichen Zeilen im ersten Blatt kümmere –