Apache POI XSSFを使用してワークブックを作成するための簡単なガイドに従いました。同じガイドに従って、Excelシートを書き込むことができましたが、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)at org.Apache.poi.xssf.usermodel.XSSFWorkbook。(XSSFWorkbook.Java:273)at com.wtolliver.spring.test.ReadExcel。 readExcel(ReadExcel.Java:18)at com.wtolliver.spring.test.App.main(App.Java:17)
少し見回した後。私は Apache POIのドキュメント を閲覧し、これが定数の1つであることを確認しました(それが本当に何を意味するのかはわかりません)。
しかし、最終的に、私が使用したチュートリアルはすべて2014年以前のものであることに気付きました。
そのため、Apache-poi
とpoi-ooxml
の両方の依存関係について、Maven POMをバージョン3.11に変更しました。
現在は機能しています。
異なる定数で同じエラーが発生しました:
スレッド「メイン」の例外
Java.lang.NoSuchFieldError
:RETURN_NULL_AND_BLANK
グーグルでたくさんの答えはありません。私はApacheを使っていましたpoi-ooxml
バージョン3.11。後でバージョン3.17に変更しました。その後、問題なく動作しました。
これが誰かに役立つことを願っています。
同じエラーが発生しました。XSSFWorkbook宣言をHSSFWorkbookに変更してみてください。それは私のために働いた。
次のエラー「Java.lang.NoSuchFieldError:RETURN_NULL_AND_BLANK」の場合
次のタスクを実行してください:私の場合、Apache POI 3。**を最新バージョンにアップグレードします以前にApache poi 3.09を使用していた次のことを行った後、libを最新バージョン、つまり3.12にアップグレードし、その作業を行いました!!
次の手順を実行すると、コードが実行されますが、エラーが同じであることを確認してください。