Ну, я знаю, что это странная проблема, я даже не мог найти правильное название для вопроса:
Я пытаюсь создать файл Excel и загрузить его - все работает отлично, за исключением одного момента, сначалаэто мой код,
List<EmployeeDto> employeeList = getEmployeeList(employeeId);
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Employee List");
sheet.setAutoFilter(new CellRangeAddress(0, 0, 0, 2));
sheet.createFreezePane(0, 1);
sheet.setColumnWidth(0, 10000);
sheet.setColumnWidth(1, 30000);
sheet.setColumnWidth(2, 10000);
Row headerRow = sheet.createRow(0);
CellStyle headerCellStyle = getHeaderCellStyle(workbook);
for (int i = 0; i < employeeExcelHeaders.size(); i++) {
Cell cell = headerRow.createCell(i);
cell.setCellValue(officeListExcelHeaders.get(i));
cell.setCellStyle(headerCellStyle);
}
int rowNumber = 1;
for (EmployeeDto employeeDto : employeeDtoList) {
Row row = sheet.createRow(rowNumber++);
row.createCell(0).setCellValue(employeeDto.getLabel());
row.createCell(1).setCellValue(employeeDto.getPostalAddress());
row.createCell(2).setCellValue(employeeDto.getCityName());
}
try {
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-disposition", "attachment; filename=Employee List.xlsx");
workbook.write(response.getOutputStream());
response.flushBuffer();
} catch (Exception ex) {
LOG.error("Error generating excel file for Employee List: " + ex.getMessage(), ex);
throw new IllegalStateException("Error generating excel file for Employee List: ", ex);
}
, когда я использую приложение mac numbers , файл поставляется с дополнительными строками и столбцами.(он всегда идет с 10 строками и 2 дополнительными столбцами)
Эта проблема не возникает для открытого офиса, но mac numbers имеет эту проблему.
Я играл по линиям:
sheet.setAutoFilter(new CellRangeAddress(0, 0, 0, 2));
sheet.createFreezePane(0, 1);
Но ничего не изменилось.
У вас есть идеи, как мне это решить?Это что-то, что я могу исправить с помощью кодирования, или это просто особенность или ошибка приложения Mac Number?