poi创建excel工作表表名为中文
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"));
poi创建excel工作表表名为中文相关推荐
- java替换Excel工作表表名不能用的字符的正则表达式
在使用poi做Excel动态导出时,由于Excel工作表表名不能用下列字符 星号--* 斜杠--/ 冒号--: 反斜杠-- 方符号--[ 或 ] 问号--? 当存在这些字符时,createSheet( ...
- 使用Spire.XLS来创建Excel 工作簿
概要 最近在研究 .NET 控件,使用这些控件能在程序中可以快速低成本实现开发功能.前面提到了如何使用Spire.XLS来制作报表,在这一篇中我 将讲到的是如何用用它来创建一个简单的Excel工作簿. ...
- 使用POI创建Excel无法打开
如果使用的XSSFWorkbook创建的xls,打开的时候会有这样的提示: 这样 XSSFWorkbook 和HSSFWorkbook的区别. 使用POI创建一个新的xlsx,提示创建成功,但是打开x ...
- POI 创建Excel 2003 (一)
poi操作excel2003和数据的写入实例 有兴趣的可以继续往下研究首先poi的下载地址 :http://apache.fayea.com/poi/release/bin/自己试了一个例子分享下 官 ...
- java POI创建Excel示例(xslx和xsl区别 )
Java用来处理office类库有很多,其中POI就是比较出名的一个,它是apache的类库,现在版本到了3.10,也就是2014年2月8号这个版本. 在处理PPT,Excel和Word前,需要导入以 ...
- 使用poi 创建Excel 保存到本地并下载
项目中需要一个提供Excel数据展示下载功能,用于并不是list数据展示,无法通过for来实现.只能通过硬编码实现每一个cell.该Excel数据展示一共用到了四种样式,所以创建了4中style. 最 ...
- Excel 宏表函数 王佩丰第24课(1)--创建Excel工作表目录
为含多个工作表的Excel文件创建目录 1 使用公式获得名称 =GET.WORKBOOK(1) 2 通过名称建立连接 在名称后添加 &"!a1" 最后公式为 =HYPERL ...
- VBA【遍历每个工作表并将工作表表名赋予B2单元格】
方法一: 存在缺陷:选中所有单元格,批量生成公式时候,每次需要点击进入工作表点击单元格--进入编辑状态,然后公式才会生效 使用公式如下: =MID(CELL("filename" ...
- python创建excel图表_Python:使用图表创建Excel工作表
它有点复杂(和/或邪恶),但类似的东西可以跨平台(包括在Linux下)使用JPype来包装SmartXLSExcel Java库. 此示例使用SmartXLS中的简单图表创建(在Charts/Char ...
最新文章
- 2019年7月份,阿里最新Java高频面试真题汇总,仅供参考
- Important table for launchpad Designer and configuration
- hive udf 分组取top1_Hive中分组取前N个值的实现-row_number()
- LESS:基础用法学习笔记
- php添加gd扩展,php安装gd扩展的方法
- 机电传动控制第二周作业
- 取样定理实验matlab,取样定理及基于MATLAB的实验教学
- 简单区分单射、满射与双射
- 虚拟机挂载优盘和识别优盘
- linux下设置MySQL密码
- Linux以太网卡软硬件架构
- 记录一次学习通接口分析
- 财务数据分析工具的选择:Excel还是大数据BI?
- 智慧农场、智慧农业管理系统、农作物、农技指导、四防棚、农耕、种植、农事执行、地块、圈地、加热温室、圈养、生产、采收记录、采收计划、采收入库、销售、农资溯源记录、农场日志、axure原型、产品原型、rp
- jq向下滑动刷新_jQuery手势控制,下拉刷新
- 【机器学习】主题建模+隐狄利克雷分配模型(LDA)+吉布斯采样
- cherrytree安装出现see the logfile for detaile错误的处理
- Neo4j 社区版4.x安装踩坑记录
- 详细教程: android项目集成PayPal 支付
- 关于一个大一学生的俄罗斯方块项目分享 C#开发,附源码(二)
热门文章
- java pdf中文乱码_java生成pdf以及解决中文中文乱码问题
- 重装系统后打不开我的世界服务器手机版,我的世界最新版为什么进不去
- Spring Boot 实现excel 批量导入数据(模板下载 ->数据导入->导入失败表格下载)
- mac电脑安装postman
- 哈理工-云计算[期末复习版]
- VB.NET中的事件与委托(警察抓小偷)
- 2022年大厂Android高级面试题分享,安卓Apk安装过程
- 招募:500名学生,36元上16节课,报满为止,限时抢购!(含4本实体书包邮)...
- python 去重去除重复数组
- 解决IDEA 找不到或无法加载主类 问题