使用POI组件生产Excel文件时中文乱码,总结后可能错误原因如下:
后台导出Excel文件格式混乱
POI组件可生成.xls和.xlsx两种格式的Excel文件,设置文件格式时应注意与导出的格式相匹配。如果文件格式设置出错,则会出现以下错误:
.xls文件格式设置
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.addHeader("Content-Disposition", "attachment;filename=fileName"+".xls");
.xlsx文件格式设置
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.addHeader("Content-Disposition", "attachment;filename=fileName"+".xlsx");
前端设置格式与后台不匹配
前端接收到Excel数据流后,也可对该数据流的浏览器下载格式进行设置,设置格式也应与Excel数据流格式一致,否则会出现Excel文件中文乱码错误。
.xls和.xlsx的区别,根据自己需求导出相应格式
xls 是一个特有的二进制格式,其核心结构是复合文档类型的结构,而 xlsx 的核心结构是 XML 类型的结构,采用的是基于 XML 的压缩方式,使其占用的空间更小。xlsx 中最后一个 x 的意义就在于此。
xls是excel2003及以前版本生成的文件格式,而xlsx是excel2007及以后版本生成的文件格式。