JAVA读取EXCEL文件异常Unable to recognize OLE stream

用JXL读取*.xls格式的文件,碰到一个问题,抛出下面的异常:
jxl.read.biff.BiffException: Unable to recognize OLE stream
at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
at jxl.read.biff.File.<init>(File.java:127)
at jxl.Workbook.getWorkbook(Workbook.java:221)
at jxl.Workbook.getWorkbook(Workbook.java:198)
at Excel.TestExcel.main(TestExcel.java:17)

折腾了一阵发现读取的*.xls文件,用记事本可以打开后,为HTML格式。然后让把文件“另存为”就可以读取了,另存为1.xls文件后,新文件用记事本打开后就是二进制的格式了。
不知道什么原因,怀疑为EXCEL版本问题?让客户“另存为”操作,客户不满意
问题补充:

程序没错,请看清楚了:文件另存为新文件,读新文件可以读出数据。关键问题是新旧文件的格式
原因:
首先你这个Excel文件是从哪里来的,很可能是从一个页面上下载来的,而这个页面做的功能就是导出Excel,但做偷懒了,没有用jxl和POI等库,而是用直接用jsp生成html写的。

因此你上传时就要要判断了,如果是真的excel就要用jxl或POI解析,如果只是html,就要用HTML的解析方法了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值