如何使用* .xlsx扩展读取Excel文件?

时间:2011-06-17 08:48:47

标签: java excel

我正在阅读带有xlsx扩展名的excel文件* (2000000行,6列) *。使用Java Excel API读取它但它抛出异常

jxl.read.biff.BiffException: Unable to recognize OLE stream

当使用xls扩展名尝试相同的文件时,它读取完全但它只读取65536行数据只剩下未读取的行。请帮助我如何读取xlsx扩展名的剩余行。

谢谢

4 个答案:

答案 0 :(得分:5)

答案 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)

  1. 请勿阅读Microsoft格式。如果您希望excel文档读取CSV,以逗号分隔列表。
  2. 您的图书馆似乎不支持xlsx
  3. 在这里查看Choosing an excel java api