随笔-153  评论-235  文章-19  trackbacks-0

目前比较流行的生成Excel文件的有poi和Jexcelapi

poi加中文有问题

必需对每一个Cell设:

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

才不会中文乱码.没有找到更好的方法一次性设置所有Cell的字符属性


用Jexcelapi试下发现不会出现中文问题,是因为它是韩国人写的吧,以多字节字符为根点

还是喜欢用Jexcelapi

下载: http://sourceforge.net/project/showfiles.php?group_id=79926

:)
posted on 2007-03-21 19:06 流浪汗 阅读(3537) 评论(4)  编辑  收藏 所属分类: JAVA/J2EE

评论:
# re: poi会中文乱码,Jexcelapi不会 2007-08-16 16:26 | pkmuwen
//EXCEL表的名
String fileName = url+currDate+Book_Name;
//获得WORKBOOK
HSSFWorkbook wb = new HSSFWorkbook();
//获得EXCEL表的名
FileOutputStream fos = new FileOutputStream(fileName);
//例子名
ArrayList arraylist = new ArrayList();
arraylist.add("语文");
arraylist.add("数学");

int arraylength = arraylist.size();
//设置编码
//cell.setEncoding((short) HSSFCell.CELL_TYPE_STRING);
for(int len=0;len<arraylength;len++){
String name = (String)arraylist.get(len);
//获取SHEET名
HSSFSheet sheet = wb.createSheet(name);
for(int i=0;i<26;i++){
//获得行
HSSFRow row = sheet.createRow((short)i);
for(int j=0;j<26;j++){
// HSSFCell cell = null;
// cell.setEncoding((short) HSSFCell.CELL_TYPE_STRING);
//获得单元格
// row.createCell((short)j).setEncoding((short) HSSFCell.ENCODING_UTF_16);
//row.createCell((short)j).setEncoding(HSSFCell.ENCODING_UTF_16);
HSSFCell cell = row.createCell((short)j);
// cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setEncoding((short)HSSFCell.ENCODING_UTF_16);
row.createCell((short)j).setCellValue("靠不出来");

}
}
}
//数据WRITE
wb.write(fos);
//关闭本次数据流写入
fos.close();



写了cell.setEncoding(HSSFCell.ENCODING_UTF_16); 照样出现乱码。。
帮看看 那里写得不对  回复  更多评论
  
# re: poi会中文乱码,Jexcelapi不会 2007-08-16 20:51 | 流浪汗
在使用这前设置
你的代码没有缩进,没有看下去
你这句当然不行了
row.createCell((short)j).setCellValue("靠不出来");



我的如下:

cell = sheetRow.createCell((short) 1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(user.getUserName());  回复  更多评论
  
# re: poi会中文乱码,Jexcelapi不会 2007-08-17 11:33 | pkmuwen
谢了 可以了
我以后会注意代码缩进的 不好意思
  回复  更多评论
  
# re: poi会中文乱码,Jexcelapi不会 2007-08-17 11:41 | pkmuwen
对了 我还有个问题请帮解答:
我要得到SHEET的个数是用:
wb.getNumberOfSheets()
这个方法吗?
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: