前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >poi导出excel文件乱码

poi导出excel文件乱码

作者头像
IT云清
发布2019-01-22 11:00:03
5.9K0
发布2019-01-22 11:00:03
举报
文章被收录于专栏:IT云清IT云清

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

1.不使用模板

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

.xls

创建工作簿用:

代码语言:javascript
复制
Workbook workbook = new HSSFWorkbook();  

文件类型设置:

代码语言:javascript
复制
response.setCharacterEncoding("utf-8");
response.setContentType("application/vnd.ms-excel");  
response.addHeader("Content-Disposition", "attachment;filename=fileName"+".xls");

或者

文件类型设置(推荐):

代码语言:javascript
复制
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");  
response.addHeader("Content-Disposition", "attachment;filename=fileName"+".xls");
.xlsx

创建工作簿用:

代码语言:javascript
复制
Workbook workbook = new XSSFWorkbook(); 

文件类型设置:

代码语言:javascript
复制
response.setCharacterEncoding("utf-8");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");  
response.addHeader("Content-Disposition", "attachment;filename=fileName"+".xlsx");

或者

文件类型设置(推荐):

代码语言:javascript
复制
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那一套,那恭喜你,这个错误,是很难发现的,下载文档后打开时可能就会出现如下情况,反之亦然:

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

这里写图片描述
这里写图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年03月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.不使用模板
    • .xls
      • .xlsx
      • 2.使用模板
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档