Это просто для того, чтобы увидеть, столкнулся ли кто -нибудь, что Apache Poi версия 5.4.1 (последняя версия на момент написания этого). Вот моя ситуация - я стараюсь создать простую функциональность для моего приложения, которое генерирует отчет Excel (только 1 лист, и не имеет графических или модных функций) в основном только текст и цифры. When I deploy to my Linux box to run it - I always get error: "too many files open" - every time I click on generate button (Again this does only happen if I click on the generate button so I think other functionality have something to do with this).
Below is all the things that I have tried and tested:
[*]My linux box soft and hard limit on fd: 4096 (я также проверил ограничение на процесс моего подачи заявления при запуске - и число составляет 4096).
У меня есть мой открытый файл, прежде чем я пытаюсь сгенерировать свой отчет (максимальное количество открытого файла, которое я мог видеть за один раз, - это 96 - мое приложение для загрузки для загрузки, чтобы это было для нас, чтобы это было для нас, чтобы это было для нас, чтобы это было для нас. /> Я протестировал в Windows, и приложение может генерировать отчет без какой -либо проблемы. Открывается при генерации отчета. Я попытался уменьшить количество рядов до 10 рядов -> и это работает. Но как только он достигнет 150 строк ->, то происходит слишком много файлов. Но я не делал ничего необычного или из обычного - просто создайте заголовок, дайте ему немного цвета фона и создаю строку данных после прихода. Или, если кто -то знает, как Apache Poi создает временные файлы, и это работает и может указать мне на правильное место, это также поможет.try (XSSFWorkbook workBook = new XSSFWorkbook();
OutputStream fos = Files.newOutputStream(Paths.get(filePath))
) {
XSSFSheet sheet = workBook.createSheet("Report");
CellStyle appHeaderCellStyle = workBook.createCellStyle();
CellStyle colHeaderCellStyle = workBook.createCellStyle();
Row appHeader = sheet.createRow((short)1);
Row rowHead = sheet.createRow((short)5);
Row reportDateRow = sheet.createRow((short)3);
Cell appCell = appHeader.createCell(0);
Cell reportDateCell = reportDateRow.createCell(0);
appCell.setCellValue(CONFIG_TITLE);
reportDateCell.setCellValue(REPORT_DATE);
reportDateRow.createCell(3).setCellValue(dateFormat.format(date));
sheet.addMergedRegion(new CellRangeAddress(1,2,0,9));
sheet.addMergedRegion(new CellRangeAddress(3,3,0,2));
sheet.addMergedRegion(new CellRangeAddress(3,3,3,9));
Font titleHeaderFont = workBook.createFont();
Font colHeaderFont = workBook.createFont();
CellStyle reportDateCellStyle = workBook.createCellStyle();
int i=0;
rowHead.setHeight((short) 400);
appHeaderCellStyle.setFont(setCellFont(titleHeaderFont,true));
colHeaderCellStyle.setFont(setCellFont(colHeaderFont, false));
for(String header : CONFIG_REPORT_LABELS){
Cell cell = rowHead.createCell(i++);
cell.setCellValue(header);
cell.setCellStyle(setCellStyles(colHeaderCellStyle));
}
appCell.setCellStyle(setCellStyles(appHeaderCellStyle));
reportDateCellStyle.setFont(setCellFont(colHeaderFont, false));
reportDateCell.setCellStyle(reportDateCellStyle);
int rowStart = 6;
for(Map map: list){
populateRowData(workBook,rowData, map);
rowStart++;
}
for(int columnIndex = 0; columnIndex < CONFIG_REPORT_LABELS.length; columnIndex++) {
sheet.autoSizeColumn(columnIndex);
}
}
private void populateRowData(Workbook workBook,Row rowData, Map map) throws Exception{
int j=0;
CellStyle rowStyle = workBook.createCellStyle();
Cell rowDataCell;
rowDataCell = rowData.createCell(j++);
rowDataCell.setCellValue(Double.parseDouble(map.get("CONFIG_ID")));
rowStyle.setAlignment(HorizontalAlignment.CENTER);
rowDataCell.setCellStyle(rowStyle);
rowData.setRowStyle(rowStyle);
...
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... xcel-sheet
Apache Poi 5.4.1 - кажется, создает слишком много временного файла при создании листа Excel, что приводит к слишком боль ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ошибка при использовании Apache.poi для чтения листа Excel на Java с использованием VScode.
Anonymous » » в форуме JAVA - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-