我遵循了使用 Apache POI XSSF 构建工作簿的简单指南。按照相同的指南,我能够编写 Excel 工作表,但是当尝试读取 Excel 工作表时,我收到代码后显示的错误。
Code:
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();
}
错误输出:
线程“main”java.lang.NoSuchFieldError 中出现异常:
RAW_XML_FILE_HEADER 位于
org.apache.poi.openxml4j.opc.internal.ZipHelper.verifyZipHeader(ZipHelper.java:179)
在
org.apache.poi.openxml4j.opc.internal.ZipHelper.openZipStream(ZipHelper.java:228)
在 org.apache.poi.openxml4j.opc.ZipPackage。(ZipPackage.java:93)
在 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)
在 com.wtolliver.spring.test.App.main(App.java:17)
环视了一圈之后。我浏览了APACHE POI 文档,并看到这是常量之一(并不是说我知道这真正意味着什么)。
但最终,我意识到我使用的所有教程都是 2014 年之前的。
所以我只是将 Maven POM 更改为版本 3.11,以获取两个依赖项apache-poi
, and poi-ooxml
.
现在可以使用了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)