0

5 シートの Excel ドキュメントを作成したいのですが、シートのデータは動的で、最大行制限があります。現在、私のアプローチは、一度に 1 枚のシートを作成し、データを入力することです。最大行を超えているかどうかを確認し、新しい Excel ドキュメントを作成しています。ただし、これは、新しいワークブックを作成する前に、他のシートも最大行制限を超えているかどうかを確認するのを待ちません

私のコードサンプル

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();
      }
   }
4

1 に答える 1