本文转自:http://dev.21tx.com/2005/10/27/15594.html
1. 设置工作表名
(下文中提到的workbook为类org.apache.poi.hssf.usermodel.HSSFWorkbook的一个实例)
如果使用workbook.createSheet(sheetname)或者使用workbook.setSheetName(1, "中文"),默认会使用ENCODING_COMPRESSED_UNICODE,在生成的Excel文件中会出现工作表名乱码。
需要修改为
workbook.setSheetName(1, "中文", HSSFWorkbook.ENCODING_UTF_16);
public final static byte ENCODING_COMPRESSED_UNICODE = 0;
public final static byte ENCODING_UTF_16 = 1;
查看HSSFWorkbook.Java文件,发现setSheetName默认使用的encoding是ENCODING_COMPRESSED_UNICODE,这里需要指定为ENCODING_UTF_16。
此处可以对比其他一些文档中说到的方法:workbook.setSheetName(1, "中文", (short)1)。对于这个(short)1却没有文档进行详细的说明。其实就是HSSFWorkbook中的ENCODING_UTF_16。
继续跟踪下去可以发现,最后会使用类org.apache.poi.hssf.record.BoundSheetRecord中的方法。POI中的文档对此有说明:
public void setCompressedUnicodeFlag(byte flag)
set whether or not to intERPerate the Sheetname as compressed unicode (8/16 bit) (This is undocumented but can be found as Q187919 on the Microsoft(tm) Support site)
Parameters:
flag - (0/1) 0- compressed, 1 - uncompressed (16-bit)
这个参数flag就是前面的encoding(HSSFWorkbook.setSheetName(int sheet, java.lang.String name, short encoding)中的第三个参数通过(byte)encoding进行转换得来的)。
2. 设置单元格
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
原始cell中不管是中文或者英文内容,用cell.getEncoding()得到的值都是0。如果要设置中文值,必须setEncoding(HSSFCell.ENCODING_UTF_16)。
在其他文档中可以看到cell.setEncoding((short)1),其实是一样的。
注意,默认会使用ENCODING_COMPRESSED_UNICODE,如果要设置的值是UTF-16编码,setEncoding必须在setCellValue之前调用。
分享到:
相关推荐
1.java使用poi生成excel插入图表曲线 2.demo包含完成jar包 3.主要用途是过滤数据自动生成曲线图
Java POI 生成Excel时显示货币格式
Java用POI实现根据Excel表格模板生成新的Excel并实现数据输出...
使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用
java poi 根据excel模板生成excel文件,利用poijar包根据已有excel模板,生成基于模板的新文件,jar包也在压缩包内,导入即可使用。
使用poi生成Excel所需要的jar包,poi-3.9.jar
Java POI 生成Word文档,支持图片插入,关键是修改XML部分,本人已测试通过。
Java POI根据模板生成Excel文件并写入磁盘,资源文件仅为实现的简单测试Demo,并没有进行代码优化,可以直接导入运行,资源文件仅供参考。
java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
Java 操作Excel poi读写excel,所需要的jar包 https://blog.csdn.net/u014646662/article/details/83217382
POI生成Excel POI读取Excel java操作Excel Servlet生成Excel web项目,包含含读取Excel与生成Excel方法
JAVA使用POI生成简单的Excel文件并下载,并设置了字体大小。
java_poi实现excel导入导出功能,有详细的注解
Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)
需要使用JAVA 做EXCEL导出的同学,有问题尽管私信
里面是完整的java程序,导入可执行,根据数据生成excel文件,http://localhost:8080/poi/export
JAVA POI导出EXCEL代码
Java通过POI读取Excel遍历数据,根本word模板批量生成word文档,demo可运行,可根据需求修改
平时工作中用到的一些技术点,拿出来和大家共享一下。 有些功能比较粗糙,如果大家有更加完善的示例或建议,欢迎交流。 1、jpg图片缩略图:ImageUtil ...2、poi创建excel:CDSHdlReport 3、计算表达式求值:Cal
JAVA POI Excel转Html,代码和所需的jar都在压缩包,项目在线预览需求,实现后分享下