Ниже код Java создает файл xlsx, но память, используемая сгенерированным файлом, составляет 1 X 4 Например: если файл xlsx равен 1 МБ, то сгенерированный файл из POI будет 4 МБ, что иногда приводит к ошибке исключения из памяти.
существует два списка Array-списков Array-списков, один из которых содержит заголовок, а другой содержит данные, ordersFields содержит заголовок и materialData содержит фактические данные.
Row newRow = null;
Workbook workbook = new SXSSFWorkbook();
Sheet sheet = workbook.createSheet();
String data = "";
// Print Column Headers
newRow = sheet.createRow(0);
for(int i = 0; i < orderedFields.size(); i++) {
newRow.createCell(i).setCellValue(orderedFields.get(i));
}
// Print Data
for (int i = 0; i < materialData.size(); i++) {
newRow = sheet.createRow(i+1);
for (int j = 1; j < materialData.get(i).size(); j++) {
newRow.createCell(j-1).setCellValue(materialData.get(i).get(j));
}
}
ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
workbook.write(outByteStream);
workbook = null;
byte [] outArray = outByteStream.toByteArray();
response.setContentType("application/ms-excel");
response.setContentLength(outArray.length);
response.setHeader("Expires:", "0"); // eliminates browser caching
response.setHeader("Content-Disposition", "attachment; filename=" + filename);
OutputStream outStream = response.getOutputStream();
outStream.write(outArray);
outStream.flush();
outArray = null;
outByteStream.reset();
Экспортированный файл создает используемую память 1X4файл xlsx.Пожалуйста, помогите мне получить экспортированный файл, который будет использовать точную память.