【Java-jxl插件】【Excel文件读写报错】jxl.read.biff.BiffException: Unable to recognize OLE stream
问题:
使用了两种方式读取 excel,执行都报错:jxl.read.biff.BiffException: Unable to recognize OLE stream
以下代码片段:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | package com.hlq.atm.excelCase; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; public class ExcelReadWrite { public static void main(String[] args) { ExcelReadWrite erw= new ExcelReadWrite(); String path=System.getProperty( "user.dir" ); // erw.readExcelByJxl(path+"/data/Students.xls"); erw.re(path+ "/data/Students.xls" ); } public void re(String pathName) { try { //创建workbook Workbook workbook=Workbook.getWorkbook( new File(pathName)); //获取第一个工作表sheet Sheet sheet=workbook.getSheet( 0 ); //获取数据 for ( int i= 0 ;i<sheet.getRows();i++){ for ( int j= 0 ;j<sheet.getColumns();j++){ Cell cell=sheet.getCell(j,i); System.out.print(cell.getContents()+ " " ); } System.out.println(); } workbook.close(); } catch (IOException e) { e.printStackTrace(); } catch (BiffException e) { e.printStackTrace(); } } public void readExcelByJxl(String fileName) {<br> File file= new File(fileName);<br> try {<br> // FileInputStream fis=new FileInputStream(file);<br> Workbook workbook=Workbook.getWorkbook(file);<br> Sheet[] sheet=workbook.getSheets();<br> for (int i=0;i<sheet.length;i++){<br> Sheet rs=workbook.getSheet(i);<br> //遍历行<br> for (int j=0;j<rs.getRows();j++){<br> Cell[] cells=rs.getRow(j);<br> //遍历列<br> for (int z=0;z<cells.length;z++){<br> System.out.print(cells[z].getContents());<br> System.out.print("\t");<br> }<br> System.out.println();<br> }<br> }<br> workbook.close();<br><br> } catch (FileNotFoundException e) {<br> e.printStackTrace();<br> } catch (IOException e) {<br> e.printStackTrace();<br> } catch (BiffException e) {<br> e.printStackTrace();<br> }<br> }<br>} |
原因:
在网上查询改报错原因,是文件版本不兼容,jxl 只支持 excecl03 版
解决办法:
尝试另存文件,选择 Excel 97-2004 工作簿,再次执行,执行通过
执行结果: