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 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号