我正在阅读带有xlsx扩展名的excel文件* (2000000行,6列) *。使用Java Excel API读取它但它抛出异常
jxl.read.biff.BiffException: Unable to recognize OLE stream
当使用xls扩展名尝试相同的文件时,它读取完全但它只读取65536行数据只剩下未读取的行。请帮助我如何读取xlsx扩展名的剩余行。
谢谢
答案 0 :(得分:5)
尝试使用Apache POI http://poi.apache.org/spreadsheet/index.html
答案 1 :(得分:1)
为了阅读xlsx文件,我们使用以下jar,
1.dom4j-1.6.1.jar 2.org-Apache的公地codec.jar 3.poi-3.7.jar 4.poi-OOXML-3.5-FINAL.jar 5.poi-OOXML-模式-3.11-beta2.jar 6.stax-API-1.0.1.jar 7.xmlbeans-2.6.0.jar
这是一个可以读取xlsx文件的功能。
public static void readXLSX(String path) {
File file = new File(path);
String value = "";
XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(path));
XSSFSheet sheet = wb.getSheetAt(0);
Row row;
Cell cell;
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
cell = cellIterator.next();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_BOOLEAN:
value = "" + cell.getBooleanCellValue();
break;
case Cell.CELL_TYPE_NUMERIC:
value = "" + cell.getNumericCellValue();
break;
case Cell.CELL_TYPE_STRING:
value = "" + cell.getStringCellValue();
break;
case Cell.CELL_TYPE_BLANK:
value = " ";
break;
default:
break;
}
System.out.println("Value: "+value);
}
}
答案 2 :(得分:0)
问题是在Office '07中,Microsoft将其文档格式更改为或多或少是包含大量XML的zip文件。 Java Excel API依赖于旧的文件格式。要阅读Office '07中的内容,请使用Apache POI。
答案 3 :(得分:-1)