您的位置:首页 > 其它

poi导出excel文件乱码

2018-03-31 11:51 1191 查看
在使用poi导出xls和xlsx文件时,有时候会出现乱码,这个问题我分为两种情况,但是解决思路差不多。

1.不使用模板

如果我们在导出时,不使用提前存储的模板,那么下面的两种情况需要严格对应:

.xls

创建工作簿用:

Workbook workbook = new HSSFWorkbook();


文件类型设置:

response.setCharacterEncoding("utf-8");
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition", "attachment;filename=fileName"+".xls");


或者

文件类型设置(推荐):

response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.addHeader("Content-Disposition", "attachment;filename=fileName"+".xls");


.xlsx

创建工作簿用:

Workbook workbook = new XSSFWorkbook();


文件类型设置:

response.setCharacterEncoding("utf-8");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.addHeader("Content-Disposition", "attachment;filename=fileName"+".xlsx");


或者

文件类型设置(推荐):

response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.addHeader("Content-Disposition", "attachment;filename=fileName"+".xlsx");


2.使用模板

如果我们使用了自己的模板,那么一定要注意:

你新建模板时,如果是.xls文件,那后面就用.xls那一套;

如果是.xlsx文件,那后面就用.xlsx那一套;

还有一种很坑的情况,就是,你建模板时,新建的是.xlsx文件,但是你简单的改了后缀名,改为了.xls,然后代码中用了.xls那一套,那恭喜你,这个错误,是很难发现的,下载文档后打开时可能就会出现如下情况,反之亦然:

文件格式和拓展名不匹配,文件可能已损坏,或者不安全。除非您信任其来源……

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息