【Excel】java 导出Excel 中文文件名乱码不显示问题

时间:2022-12-03 09:26:40

    在使用Java 导出Excel 等报表时,对于中文文件名,会出现不显示中文或者中午乱码的问题。此问题的解决方案比较简单,将要返回的中文文件名做iso-8859-1 转码即可。


【问题写法】

   【Excel】java 导出Excel 中文文件名乱码不显示问题    【Excel】java 导出Excel 中文文件名乱码不显示问题


【正确方式: 推荐方式】

    推荐在导出文件时,指定返回内容编码,并对文件名进行转码

response.setContentType("application/octet-stream;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="
		+ new String(fileName.getBytes(),"iso-8859-1") + ".xls");

    【Excel】java 导出Excel 中文文件名乱码不显示问题


【PS:  Spring 导出Excel 技巧】

    Spring 中提供了 AbstractExcelView(org.springframework.web.servlet.view.document.AbstractExcelView) 视图,我们只需继承这个抽象类,然后重写里面的方法即可。

然后我们就可以在controller 方法中,直接返回这个对象就行了。可以使用类似方式:return new ModelAndView(multiSheetsObjectExcelView, dataMap);

【Excel】java 导出Excel 中文文件名乱码不显示问题