poi导出excel文件乱码
2018-03-31 11:51
1191 查看
在使用poi导出xls和xlsx文件时,有时候会出现乱码,这个问题我分为两种情况,但是解决思路差不多。
.xls
创建工作簿用:
文件类型设置:
或者
文件类型设置(推荐):
.xlsx
创建工作簿用:
文件类型设置:
或者
文件类型设置(推荐):
你新建模板时,如果是.xls文件,那后面就用.xls那一套;
如果是.xlsx文件,那后面就用.xlsx那一套;
还有一种很坑的情况,就是,你建模板时,新建的是.xlsx文件,但是你简单的改了后缀名,改为了.xls,然后代码中用了.xls那一套,那恭喜你,这个错误,是很难发现的,下载文档后打开时可能就会出现如下情况,反之亦然:
文件格式和拓展名不匹配,文件可能已损坏,或者不安全。除非您信任其来源……
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那一套,那恭喜你,这个错误,是很难发现的,下载文档后打开时可能就会出现如下情况,反之亦然:
文件格式和拓展名不匹配,文件可能已损坏,或者不安全。除非您信任其来源……
相关文章推荐
- 使用poi 导出Excel文件 并解决中文名乱码
- 【poi excel导出】不同浏览器的编码方式,解决下载文件名称乱码
- Excel打开从PL/SQL Deleveloper导出的csv文件乱码问题
- 关于poi导出excel文件
- java 利用org.apache.poi.hssf包编写excel导出文件
- poi 导出excel文件
- 利用POi3.8导出excel产生大量xml临时文件怎么办?
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
- JXL网络导出excel部分机器出现文件乱码的解决办法
- java学习之--导入导出excel文件 通过poi
- GridView导出 Excel文件内容出现乱码
- DataGrid数据导出excel文件,有时出现乱码解决方法。
- java poi 导出.xls的Excel报表 IE11导出文件名称后缀是.action,待修复
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
- POI导出Excel和InputStream存储为文件
- PHP导出Excel文件时导出列的数字长度太长时显示不完整或者乱码显示
- POI导出Excel文件以及读取Excel文件
- SpringMVC+POI下载文件模板和导出Excel
- phpexcel 导出到xls文件的时候出现乱码解决
- 用POI实现excel文件导出 代码示例分享