8

Apache POI XSSF を使用してワークブックを作成するための簡単なガイドに従いました。同じガイドに従って Excel シートを書き込むことができましたが、シートから読み取ろうとすると、コードの後に​​エラーが表示されます。

コード:

try {
    FileInputStream file = new FileInputStream(new File("howtodoinjava_demo.xlsx"));

    // Create Workbook instance holding reference to .xlsx file
    XSSFWorkbook workbook = new XSSFWorkbook(file);

    // Get first/desired sheet from the workbook
    XSSFSheet sheet = workbook.getSheetAt(0);

    // Iterate through each rows one by one
    Iterator<Row> rowIterator = sheet.iterator();
    while (rowIterator.hasNext()) {
        Row row = rowIterator.next();
        // For each row, iterate through all the columns
        Iterator<Cell> cellIterator = row.cellIterator();

        while (cellIterator.hasNext()) {
            Cell cell = cellIterator.next();
            // Check the cell type and format accordingly
            switch (cell.getCellType()) {
            case Cell.CELL_TYPE_NUMERIC:
                System.out.print(cell.getNumericCellValue() + "t");
                break;
            case Cell.CELL_TYPE_STRING:
                System.out.print(cell.getStringCellValue() + "t");
                break;
            }
        }
        System.out.println("");
    }
    file.close();
} catch (Exception e) {
    e.printStackTrace();
}

エラー出力:

スレッド「メイン」での例外 java.lang.NoSuchFieldError: RAW_XML_FILE_HEADER at org.apache.poi.openxml4j.opc.internal.ZipHelper.verifyZipHeader(ZipHelper.java:179) at org.apache.poi.openxml4j.opc.internal.ZipHelper .openZipStream(ZipHelper.java:228) at org.apache.poi.openxml4j.opc.ZipPackage.(ZipPackage.java:93) at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:294) org.apache.poi.util.PackageHelper.open(PackageHelper.java:37) で org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:273) で com.wtolliver.spring.test.ReadExcel。 readExcel(ReadExcel.java:18) at com.wtolliver.spring.test.App.main(App.java:17)

4

5 に答える 5

15

少し様子を見た後。APACHE POIのドキュメントを参照したところ、これが定数の 1 つであることがわかりました (それが実際に何を意味するのかはわかりません)。

しかし最終的に、使用したすべてのチュートリアルが 2014 年より前のものであることに気付きました。

apache-poiそのため、 との両方の依存関係について、Maven POM をバージョン 3.11 に変更しpoi-ooxmlました。

その作業は今。

于 2016-06-03T16:13:50.113 に答える