项目需要,有一个功能是后端生成Excel文件并且写入文件流,前台接收并提示用户导出文件。
看起来是个很简单的功能,网上关于这个功能的解决办法也有很多,基本都差不多,大致如下:
- 后端:
@RequestMapping(value = "/exportGatherXls", method = RequestMethod.POST)
public void exportGatherXls(HttpServletResponse response) {
//导出Excel
response.setContentType("application/vnd.ms-excel;charset=utf-8");
String codedFileName = "test";
OutputStream fOut = null;
try {
String newtitle = new String(codedFileName.getBytes("UTF-8"), "ISO8859-1");
response.setHeader("content-disposition", "attachment;filename=" + newtitle + ".xls");
Workbook workbook = new HSSFWorkbook();
//2.创建工作簿
Sheet sheet = workbook.createSheet();
//3.创建标题行,测试数据
Row titlerRow = sheet.createRow(0);
titlerRow.c