使用JXL进行EXCEL上传,cell.getContents()不能取得字段内容

 cell.getContents()不能取得字段内容。
使用JXL.jar,读取cell内容时为空。字段类型如果为date,或者Lable(有中文)可以读取。
Lable(数字、字母、字符)读取结果为空。
环境体现
           | 主干开发 |  release |  生产 | release使用主干代码
-----------|----------|----------|-------|-------------          
下载的文件 |    Y     |    Y     |   o   |    Y
-----------|----------|----------|-------|------------       
手写或修   |    N     |    Y     |   N   |    Y
改文件     |          |          |       |
注:o为未测试
                
代码无问题,2年没有改过,jar包为公用1年没有改过,之前一直好用,突然出现问题。怀疑环境编码或文件编码问题,但没有找到解决办法。                
尝试用release上的jxl.jar替换主干上该jar包,主干开发环境可以正常读取了。 但是两个jar经过比对无任何不同之处。

第二天,tian同学另一模块同样问题。将jar替换到生产上无法解决问题。
将暂时认为有问题原主干开发jar回复,问题重现。            
应用服务器(Weblogic)Locale为zh_CN,修改为en_US,可以正常读取。主干测试OAS,为en_US无法读取,修改为zh_CN可以读取。

EXCEL为微软格式编码,不存在utf-8,gbk编码不对的问题。但是应用的Locale表现又不一样。彻底晕菜。

tian同志发现一个办法,手工设置excel的编码后就没问题了:

WorkbookSettings setting = new WorkbookSettings();
java.util.Locale locale = new java.util.Locale("zh", "CN");
setting.setLocale(locale);
setting.setEncoding("ISO-8859-1");
book = Workbook.getWorkbook(zipFile.getInputStream(zipEntry),setting);

试用果然好使。

无法完全解释该问题,但估计与Locale相关,或者上传过程中产生的了问题。上传使用的最原始的<input type='file'>

如有人找到具体原因,请赐教。

你可能感兴趣的:(应用服务器,weblogic,Excel,jar,测试,input)