gpt4 book ai didi

spring-mvc - 使用 Apache POI 从 Spring Controller 返回 Excel 文档

转载 作者:行者123 更新时间:2023-12-04 22:22:26 24 4
gpt4 key购买 nike

我正在尝试将 Excel 文件发送回用户。以某种方式,即使我的 excel 文件是空的,它也会损坏。当我打开文件时,Excel 告诉我该文件已损坏。

如果我删除

response.getOutputStream().write(excelService.exportEventsToCSV());

我得到一个空的excel文件。
@RequestMapping(value = "/events/excel", method = RequestMethod.GET)
public void getEventsAsExcel(HttpServletResponse response) {

try {

response.setHeader("Content-disposition", "attachment; filename=test.xls");
response.getOutputStream().write(excelService.exportEventsToCSV());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

我的 XML 生成非常简单。只是空文件
@Override
public byte[] exportEventsToCSV() {
try {

HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet worksheet = workbook.createSheet("POI Worksheet");
HSSFCellStyle cellStyle = workbook.createCellStyle();


workbook.write(fileOut);

return workbook.getBytes();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

请任何建议。我正在考虑 Springs Excel View ,但我不想要 View 。只是一个下载的文件。

最佳答案

您似乎在获取输出方面做了一些非常奇怪的事情,而且我相当确定 workbook.getBytes() 没有返回您认为的内容......

我强烈建议您更改 exportEventsToCSV 以返回工作簿,然后您可以做得更简单:

Workbook wb = excelService.exportEventsToCSV();
response.setHeader("Content-disposition", "attachment; filename=test.xls");
wb.write( response.getOutputStream() );

这应该可以正常工作,并为最终用户提供他们所期望的东西

关于spring-mvc - 使用 Apache POI 从 Spring Controller 返回 Excel 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13271786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com