War*_*ior 11 java xlsx apache-poi
最近将 POI jar 版本从 3.17 升级到 5.1 以及在 3.x 中工作的以下代码现在已损坏,( jdk 1.8 )
下面是我的存根:
import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ReadExcelDemo
{
public static void main(String[] args)
{
try
{
FileInputStream file = new FileInputStream(new File("D:\\TemporaryUploadContainer\\61C50E5C2395C7FB48499BCFDD797F15_QuickCartExample.xlsx"));
//Workbook workbook1 = WorkbookFactory.create(file);
//Sheet sheet1 = workbook1.getSheetAt(0);
XSSFWorkbook workbook = new XSSFWorkbook(file);
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 NUMERIC:
System.out.print(cell.getNumericCellValue() + "t");
break;
case STRING:
System.out.print(cell.getStringCellValue() + "t");
break;
}
}
System.out.println("");
}
file.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下错误为:Workbook workbook1 = WorkbookFactory.create(file);
线程“main”中的异常 java.lang.NoSuchFieldError:工厂位于 org.apache.poi.xssf.model.ThemesTable.(ThemesTable.java:86) 位于 org.apache.poi.ooxml.POIXMLFactory.createDocumentPart(POIXMLFactory.java: 61) 在 org.apache.poi.ooxml.POIXMLDocumentPart.read(POIXMLDocumentPart.java:661) 在 org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:165) 在 org.apache.poi.xssf.usermodel .XSSFWorkbook.(XSSFWorkbook.java:275) 在 org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:296) 在 test.XLSXReaderWriterP21.readRecordsFromFile(XLSXReaderWriterP21.java:76) 在 test.XLSXReaderWriterP21.main( XLSXReaderWriterP21.java:57)
以下错误为:XSSFWorkbook workbook = new XSSFWorkbook(file);
线程“main”中的异常 java.lang.NoSuchFieldError:工厂位于 org.apache.poi.xssf.model.ThemesTable.(ThemesTable.java:86) 位于 org.apache.poi.ooxml.POIXMLFactory.createDocumentPart(POIXMLFactory.java: 61) 在 org.apache.poi.ooxml.POIXMLDocumentPart.read(POIXMLDocumentPart.java:661) 在 org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:165) 在 org.apache.poi.xssf.usermodel .XSSFWorkbook.(XSSFWorkbook.java:275) 在 org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:296) 在 test.ReadExcelDemo.main(ReadExcelDemo.java:26)
小智 5
当我尝试使用 Netbeans 时,我遇到了同样的问题:
XSSFWorkbook workbook = new XSSFWorkbook(fis);
Run Code Online (Sandbox Code Playgroud)
或者
Workbook workbook = WorkbookFactory.create(inputFile);
Run Code Online (Sandbox Code Playgroud)
我修复了将 poi-ooxml-schemas-4.1.2.jar 更改为 poi-ooxml-lite-5.2.2.jar 的问题
小智 -1
嘿,刚刚遇到了和你一样的问题。通过添加以下依赖项解决了这个问题。
poi-4.1.2.jar poi-ooxml-4.1.2.jar poi-ooxml-schemas-4.1.2.jar xmlbeans-3.1.0.jar
正如其他评论所建议的,poi-jars 应该是相同的版本,否则它将无法正常工作。
| 归档时间: |
|
| 查看次数: |
21272 次 |
| 最近记录: |