`
- 浏览:
378721 次
- 性别:
- 来自:
北京
-
POI类库是JAVA平台下操作EXCEL的类库,功能很强大,相信大家都在工作已经使用得很熟练了,这里就不详细介绍了,简单的说, 一个Excel文件的层次:Excel文件->工作表->行->单元格 , 对应到POI中为:workbook->sheet->row->cell 。
今天要说的是在创建工作表时,用中文做文件名和工作表名会出现乱码的问题,先说以中文作为工作表名,大家创建工作表的代码一般如下:
HSSFWorkbook workbook = new HSSFWorkbook();//创建EXCEL文件
HSSFSheet sheet= workbook.createSheet(sheetName); //创建工作表
这样在用英文名作为工作表名是没问题的,但如果sheetName是中文字符,就会出现乱码,解决的方法如下代码:
HSSFSheet sheet= workbook.createSheet();
workbook.setSheetName(0, sheetName,(short)1); //这里(short)1是解决中文乱码的关键;而第一个参数是工作表的索引号。
没有太多原因,POI就是如此;再说导出的EXCEL文件名的中文乱码问题, 导出时代码如下:
.....
this.getResponse().reset();
this.getResponse().setContentType("application/msexcel");
this.getResponse().setHeader("Content-Disposition", "inline;filename=中文名.xls");
try {
em.getExcelMutliIO(this.getResponse().getOutputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这个时候导出去时,文件名会为乱码,解决的办法如下,在你的代码增加下列函数:
public static String toUtf8String(String s){
StringBuffer sb = new StringBuffer();
for (int i=0;i<s.length();i++){
char c = s.charAt(i);
if (c >= 0 && c <= 255){sb.append(c);}
else{
byte[] b;
try { b = Character.toString(c).getBytes("utf-8");}
catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0) k += 256;
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
然后在导出时,对文件名引用该函数,代码如下:
this.getResponse().setHeader("Content-Disposition", "inline;filename=" +toUtf8String("中文文件名.xls"));
转载自:http://www.hpgy.net/blog/12345679/281_1.html
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
2. **创建Sheet对象**:Sheet代表Excel工作表,每个Workbook可以有多个Sheet。 3. **创建Row对象**:Row代表Excel的一行,每个Sheet可以有多行。 4. **创建Cell对象**:Cell是Excel中的最小单元,存放具体的数据。...
下面将详细介绍如何使用Apache POI操作Excel 2007以及相关的类库。 首先,"poi-bin-3.9-20121203.zip"是Apache POI的一个版本包,包含了运行时所需的二进制文件。解压后,你可以将其中的jar文件添加到你的Java项目...
本实例代码"poi实现EXCEL保护工作表实例代码.zip"提供了如何使用Apache POI来保护Excel工作表的具体示例,确保未经授权的用户无法进行编辑操作。 Apache POI库提供了HSSF和XSSF两个主要的API,分别用于处理老版本的...
2. **创建工作表**:接着,使用 `XSSFWorkbook` 的 `createSheet()` 方法创建一个新的工作表,例如 ` XSSFSheet sheet = workbook.createSheet("Sheet1"); `。 3. **创建行与单元格**:多表头的构建需要创建多个...
Java操作Excel工作表的类库通常指的是Apache POI和JExcelAPI等开源库,它们允许开发者在Java程序中创建、读取和修改Microsoft Excel文件。这些库为处理大量数据提供了便利,尤其在数据分析、报告生成或者自动化办公...
Apache POI 是一个开源项目,隶属于 Apache Software Foundation,它的主要目标是处理 OLE2 兼容的对象,尤其是针对 Microsoft Office 文件格式。其中,POI 提供了 Java API 来读写和操纵 Windows 文档,尤其是对 ...
color org.apache.poi.hssf.util.HSSFColor$GREY_80_PERCENT@1aadbf7 color org.apache.poi.hssf.util.HSSFColor$INDIGO@4f4458 color org.apache.poi.hssf.util.HSSFColor$PLUM@100c56 color org.apache.poi....
poi多级表头导出模板
例如,`workbook.createSheet("Sheet1")` 创建名为 "Sheet1" 的工作表。 3. **添加行和单元格**:在工作表中,你可以通过调用 `createRow` 和 `createCell` 方法来添加行和单元格。比如 `row.createCell(index)` ...
为了便于管理和检索这些POI数据,天地图制定了详细的POI数据分类编码表。 POI数据分类编码表是一种标准化的数据组织方式,它将各种类型的POI按照一定的逻辑进行分类,并为每个类别分配一个唯一的编码。这样的编码...
poi-***.jar中文文档.zip,java,poi-***.jar,org.apache.poi,poi,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,apache,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【poi-***...
在3.7版本中,POI对中文编码的优化确保了在读取和写入含中文的单元格时,不会出现乱码问题。 对于中文乱码的问题,通常是因为文件编码不匹配导致的。在Java中,使用InputStreamReader和OutputStreamWriter与特定的...
poi-***.jar中文文档.zip,java,poi-***.jar,org.apache.poi,poi,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,apache,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【poi-***...
这个“POI中文帮助文档”提供了全面的指南,帮助开发者理解和使用POI API来处理这些文件类型。 1. **POI基本概念**: - **HSSF**:用于处理Excel的低级别API,主要支持.xls格式的老版Excel文件。 - **XSSF**:...
poi-***.jar中文文档.zip,java,poi-***.jar,org.apache.poi,poi,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,apache,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【poi-***...
poi类表对照表是高德地图提供的一份详细分类表,其中包含了各种POI类型的编码和对应的中文描述。这份表格通常会包含以下几列: 1. **编码**:每个POI类型都有一个唯一的数字或字母编码,开发者可以通过这个编码来...
根据提供的文件信息,本文将对“POI中文帮助文档”中的关键知识点进行详细的解析与总结。Apache POI项目提供了一套强大的API,用于处理Microsoft Office格式的文件,特别是Excel(.xls和.xlsx)和Word(.doc和.docx...
poi-***.jar中文文档.zip,java,poi-***.jar,org.apache.poi,poi,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,apache,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【poi-***...
这个例子会创建一个名为"output.xls"的Excel文件,其中包含一个工作表"Sheet1",第一行第一列的单元格内填充文本"Hello, World!"。这就是POI的基本用法,但其功能远不止于此,还可以实现更复杂的操作,如合并单元格...