我有一个代码可以从旧格式的Excel工作表中读取(97-2003)。我对数据进行了一些更改,最终得到了2007格式的Excel工作表。当我使用此xlsx工作表而不是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:268)
    at readexcel.ReadExcel.readContent(ReadExcel.java:50)
    at readexcel.ReadExcel.init(ReadExcel.java:25)
    at readexcel.ReadExcel.main(ReadExcel.java:183)

最佳答案

xls格式( = Excel 2007)由zip容器中的XML文件组成。

Java Excel API仅处理第一种格式,因此在未遇到OLE容器时会引发异常。

您将需要仅将输入内容限制为xls文件,或者找到另一个处理这两种格式的工具。

10-05 19:07