pet*_*hel 3 spring-mvc apache-poi
我正在尝试将Excel文件发送回用户.在某种程度上,即使它是空的,我的excel文件也会被破坏.当我打开文件时,Excel告诉我该文件已损坏.
如果我删除
response.getOutputStream().write(excelService.exportEventsToCSV());
Run Code Online (Sandbox Code Playgroud)
我得到一个空的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();
}
}
Run Code Online (Sandbox Code Playgroud)
我的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;
}
Run Code Online (Sandbox Code Playgroud)
请任何建议.我正在考虑Springs Excel视图,但我不想要一个视图.只是一个下载的文件.
Gag*_*arr 12
你似乎在做出一些非常奇怪的事情来获得输出,而且我很确定它workbook.getBytes()没有回归你的想法......
我强烈建议你改变exportEventsToCSV以返回工作簿,然后你可以做更简单的事情:
Workbook wb = excelService.exportEventsToCSV();
response.setHeader("Content-disposition", "attachment; filename=test.xls");
wb.write( response.getOutputStream() );
Run Code Online (Sandbox Code Playgroud)
这应该工作正常,并为最终用户提供他们期望的那种东西
| 归档时间: |
|
| 查看次数: |
14393 次 |
| 最近记录: |