java poi工具导出excel乱码问题的解决方法



poi工具导出excel乱码问题的解决方法。

1. 遇到这个问题是2天前,当时在google搜搜的时候我给的关键词: java导出excel乱码

在出现的N多页面中选出了几个页面进行了研究,主要的解决方案如下:

a 在jsp页面头,加入中文编码控制
<%@ page language=”java” contentType=”text/html; charset=UTF-8″ pageEncoding=”UTF-8″%>
b 在action层的respose流中

respose.setContentType(“application/vnd.ms-excel;charset=utf-8″);// // 指定文件的保存类型。
respose.setCharacterEncoding(“utf-8″);

很多页面都是给出的这个建议,我也反复测试这个代码,但我的excel乱码仍然解决不了。

2. 当时由于有其他任务,就暂时丢下这个棘手的问题,做需求去了。到了第二天,继续弄这个问题。

这次我觉得可能是工具POI出现的问题.这次搜索我稍微改变了关键词:poi 乱码, 这次搜的结果比较真实的接近问题。

解决办法如下:


a 工作表名字乱码 解决办法:workBook.setSheetName(sheetCount, sheetName , HSSFWorkbook.ENCODING_UTF_16);

b 单元格乱码 解决办法:在写单元格的值的之前,workSheet.getRow(rowIdx).getCell((short)2).setEncoding(HSSFCell.ENCODING_UTF_16);

c 打印设置乱码 好像没有办法,所以最好在模板中设置好。

好了根据这个方案,我以为惊喜会出现,耽搁了几个小时,还是出现令人惋惜的结果。

 

3. 到了周末,清早看完csdn新闻,想用jxl重新写导excel的方法,好了我的先删除poi工具包,突然我发现了问题,我的jar包里面有poi2.5,poi3.5的多个版本包,仔细查看了下逻辑代码,所用的class基本都是3.5版本的,好了卸载3.5的再试试,问题马上解决了。哎终于可以好好享受下周末了。

 

回顾上述解决方案的过程,发现自己明显的2个毛病: 一是搜索时描述问题不准确,二是解决问题的步骤有些紊乱。

就一个jar包版本问题纠缠了这么久。