您的位置:首页 > 其它

jxl 读取excel 文件 Unable to recognize OLE stream

2017-04-20 15:07 561 查看
  使用java程序读取excel文件时出现下列错误;

        

        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 jxl.Workbook.getWorkbook(Workbook.java:253)
at readExcel.ReadExcels.main(ReadExcels.java:34)

  

   将excel另存为2003xls 文件。

package readExcel;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;

public class ReadExcels {
public static void main(String[] args) {
{

File file = new File("E://test");
File[] files =file.listFiles();
jxl.Workbook readwb = null;
for(int n=0; n<files.length;n++){
System.out.println(files
.getPath());

try

{

//构建Workbook对象, 只读Workbook对象

//直接从本地文件创建Workbook
InputStream instream = new FileInputStream(files
.getPath());

readwb = Workbook.getWorkbook(instream);

//Sheet的下标是从0开始

//获取第一张Sheet表

Sheet readsheet = readwb.getSheet(0);

//获取Sheet表中所包含的总列数

int rsColumns = readsheet.getColumns();

//获取Sheet表中所包含的总行数

int rsRows = readsheet.getRows();

//获取指定单元格的对象引用

for (int i = 0; i < rsRows; i++)

{

for (int j = 0; j < rsColumns; j++)

{

Cell cell = readsheet.getCell(j, i);
System.out.print(cell.getContents()+"  ");
}

System.out.println();

}

System.out.println("共"+rsColumns+"列信息,"+rsRows+"行信息");

System.out.println();

} catch (Exception e) {

e.printStackTrace();

} finally {

readwb.close();

}

}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: