JXL读取excel文件抛Unable to recognize OLE stream 异常

POI
JXL
jxl.jar是通过java操作excel表格的工具类库,是由java语言开发而成的。我们在使用jxl读取xls时能够正常读取,但是读取xlsx文件抛出了“Unable to recognize OLE stream ”错误。

jxl.jar是通过java操作excel表格的工具类库,是由java语言开发而成的。我们在使用jxl读取xls时能够正常读取,但是读取xlsx文件抛出了“Unable to recognize OLE stream ”错误。

Java代码如下:

import jxl.Sheet;
import jxl.Workbook;

import java.io.File;

/**
 * 模式使用 JXL 读取 .xlsx 文件,将会抛出 Unable to recognize OLE stream 异常
 */
public class Demo02 {

    public static void main(String[] args) throws Exception {
        String base = System.getProperty("user.dir");
        File xlsFile = new File(base + "\\src\\main\\resources\\2018.xlsx");
        // 获得工作簿对象
        Workbook workbook = Workbook.getWorkbook(xlsFile);
        // 获得所有工作表
        Sheet[] sheets = workbook.getSheets();
        // 遍历工作表
        if (sheets != null) {
            for (Sheet sheet : sheets) {
                // 获得行数
                int rows = sheet.getRows();
                // 读取数据
                for (int row = 1; row < rows; row++) {
                    System.out.println(sheet.getCell(0, row).getContents() + "\t"
                            + sheet.getCell(1, row).getContents()
                            + "\t" + sheet.getCell(2, row).getContents());
                }
            }
        }
        workbook.close();
    }

}

运行上面代码,抛出如下错误:

Exception in thread "main" jxl.read.biff.BiffException: Unable to recognize OLE stream
	at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:111)
	at jxl.read.biff.File.<init>(File.java:113)
	at jxl.Workbook.getWorkbook(Workbook.java:203)
	at jxl.Workbook.getWorkbook(Workbook.java:180)
	at com.huangx.poi.Demo02.main(Demo02.java:16)

解决办法:

将 2018.xlsx 文件使用Excel打开,然后另存为.xls格式的文件。即可解决……

时间是一切财富中最宝贵的财富。 —— 德奥弗拉斯多
2 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号