Я реализую приведенный ниже фрагмент кода для экспорта файла xls в браузере в приложении Spring:
@RequestMapping(method = RequestMethod.POST, value = ResourcesPath.EXCEL,
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
@ResponseStatus(HttpStatus.OK)
public void loadExcel(ReportFilter filter, HttpServletResponse response) throws
IOException {
List<ReportItemVO> result = // list of ReportItemVO ...
Date today = new Date();
response.addHeader("Content-Disposition", "attachment; filename=today.getTime() + ".xls");
BufferedOutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
xlsExportService.saveSpreadsheetRecords(ReportItemVO.class, result, outputStream);
outputStream.flush();
outputStream.close();
}
public interface XlsExportService extends SpreadsheetService {
}
@Autowired
private XlsExportService xlsExportService;
Здесь все работает хорошо при экспорте данных result.size () <65535. В противном случае выдается "java.lang.IllegalArgumentException: недопустимый номер строки (65536) вне допустимого диапазона (0..65535)".
Я обнаружил, что saveSpreadsheetRecords использует HSSFSheet, который ограничен 65535 строками, и что мне нужно использовать XSSHSheet, но я не нашел никаких подсказок, чтобы использовать это таким образом, чтобы (ReportItemVO.class, result, outputStream) в качестве ввод.
Есть идеи, пожалуйста?
2 ответа
Вы должны реализовать SpreedsheetService
, а не расширять его
@Component
public class XlsExportService implements SpreedsheetService {
}
Затем вы можете указать методы использования XSSFSheet вместо HSSFSheets.
В старом формате XLS для Excel максимальное количество строк составляет 65535: см. а>.
Попробуйте сохранить в формате XLSX, в котором до 1 048 576 строк.
Похожие вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].