公司要做一个txt2xls的小程序,连界面都不需要,我用jxl写了不到100行代码搞定。
但是我的环境是windwos的,而同事到山东出差,运行环境是unix(IBM AIX)的,程序就出了问题,在win下怎么折腾都好使,而在unix下怎么折腾都是乱码。
我先上网查了下,有的说jxl在jdk1.42_x的部分jvm上会出现编码问题,建议换jdk;
有的说这样解决:
WorkbookSettings workbookSettings = new WorkbookSettings();
workbookSettings.setEncoding("ISO-8859-1"); //解决中文乱码,或GBK
Workbook rwb = Workbook.getWorkbook(is, workbookSettings);
还有的说这样解决:
引用
在jxl源代码时发现public static String getUnicodeString(byte[] d, int length, int pos)这个方法return后出现乱码。
也就是说还是编码问题,我用的jxl是2.6.5,jdk是1.4,找到jxl源码jxl.biff包下StringHelper这个类。
找到:public static String UNICODE_ENCODING = "unicodelittle";
这句代码改为:public static String UNICODE_ENCODING = "utf-16LE";
在jxl.read.biff包下找到BoundsheetRecord这个类,在public BoundsheetRecord(Record t)这个方法下name = new String(bytes);这句代码改为:
try {
name = new String(bytes,"UTF-16LE");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
name="error";
}
………………
但是最终都没能解决问题,最后我们是这样解决的:
java -Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh
即在运行java进程时指定编码,终于又搞定了。
分享到:
相关推荐
jxl导出excel加水印 WritableWorkbook、WritableSheet、WritableCellFormat
jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程 jxl导出excel 完整例子工程jxl导出excel 完整例子工程jxl导出excel 完整例子工程
jxl导出excel工具类,封装好了的,实现传递任意集合自动导出excel
使用jxl导出Excel表的好例子 导出excel表的例子
jxl导入导出excel 详细的描述了如何使用jxl导入导出excel。
jxl模版生成excel,采用类似EL表达式的方式生成模版
java利用jxl生成excel文件,代码直接导入就可以跑(修改自己的生成的ecxel地址)
Android使用jxl快速导出excel表
poi jxl 生成EXCEL 报表 POI 用的JAR poi-3.6-20091214.jar jxl 用到的jar jxl-2.6.jar
jxl对excel添加水印(含有setWaterMarkImage方法).zip
jxl导出Excel基础,非常有用的一个东西,漫漫看
JXL操作EXCEL 数据库导出EXCEL相关文件一些详细资料
java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图
java中使用jxl打印excel报表,java中使用jxl打印excel报表,java中使用jxl打印excel报表
用jxl生成EXCEL表格,一个非常简单易懂的写法。
使用jxl生成excel的通用方法,参数List<?>数据,LinkedHashMap,String>实体类属性名和中文列名的键值对
jxl对下拉列表的读写操作以及相应的修改功能
jxl工具类导出excel,导出详细说明,及相关代码和jar,如有不明白私聊
jxl从数据库中直接导出excel文档java源码
使用jxl方式实现Excel表格导出,非常简单而且实用