您的位置:首页 > Web前端

jxl.read.biff.BiffException: Unable to recognize OLE stream原因及解决方法

2016-07-28 18:17 281 查看
合并文件夹下所有.xls文件,用jxl来编写程序报错jxl.read.biff.BiffException: Unable to recognize OLE stream

原因有二:

1. jxl包只支持excel03版,文件可能是07版本,可利用宏指令,对所有文件批量修改格式,可参考1:

http://zhidao.baidu.com/link?url=d_lq286waS5fGQt0_NZBPhzaWn5V42ihn_mx0ulEifc6d1o1tMLrSjX3JG5y41uqe6hWmfRA5Bh_l75m5VCKFa.

2. 文件不是标准的excel格式,可通过文件–>另存为方式查看该文件的保存类型,如果是“单个文件网页”类型,说明这是一个.html文件,不能使用jxl包操作,也不能使用POI操作。

解决方法:

1.如果是少量文件,可以把文件另存为excel标准格式,再使用jxl包操作。

2.如果是大量文件,无法通过方法1来解决,这时可对html文件解析。

下面针对方法二进行说明:

1.在文件目录下,右键文件打开方式选择记事本,看到文件为html格式,而且文件中出现“=E5=B9=B48=E6=9C=88=E8=87=B3”格式内容,可通过Quated-Printable解码解决这个问题,参考2(http://www.bkjia.com/Javabc/546185.html).

2.本人项目如果参考2程序,中文输出依旧乱码,解决方式把最后返回的字符串改为:

return new String(buffer.toByteArray());


这样可输出正常的中文编码。

3.对得到的字符串解析,本人采用Jsoup包进行解析,可以得到想要的内容并对excel写操作,这是可以使用.jxl操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  excel