“线程中的异常”;“主要”;org.apache.poi.POIXMLException:java.lang.reflect.InvocationTargetException
我有以下jar文件“线程中的异常”;“主要”;org.apache.poi.POIXMLException:java.lang.reflect.InvocationTargetException,java,apache,apache-poi,Java,Apache,Apache Poi,我有以下jar文件 dom4j-1.6.1.jar poi-3.11.jar poi-ooxml-3.11.jar poi-ooxml-schemas-3.15-beta2.jar xmlbeans-2.6.0.jar poi-scratchpad-3.11.jar poi-excelant-3.11.jar 我正在读一份excel(2007)工作表。我的代码如下 import java.io.File; import java.io.FileInputStream; import java.
dom4j-1.6.1.jar
poi-3.11.jar
poi-ooxml-3.11.jar
poi-ooxml-schemas-3.15-beta2.jar
xmlbeans-2.6.0.jar
poi-scratchpad-3.11.jar
poi-excelant-3.11.jar
我正在读一份excel(2007)工作表。我的代码如下
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class AdaptiveControllers {
public static void main(String[] args) throws IOException {
String excelFilePath = "test.xlsx";
FileInputStream inputStream = new FileInputStream(new File(excelFilePath));
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet firstSheet = workbook.getSheetAt(0);
Iterator<Row> iterator = firstSheet.iterator();
while (iterator.hasNext()) {
Row nextRow = iterator.next();
Iterator<Cell> cellIterator = nextRow.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue());
break;
case Cell.CELL_TYPE_BOOLEAN:
System.out.print(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue());
break;
}
System.out.print(" - ");
}
System.out.println();
}
workbook.close();
inputStream.close();
}
}
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.IOException;
导入java.util.Iterator;
导入org.apache.poi.ss.usermodel.Cell;
导入org.apache.poi.ss.usermodel.Row;
导入org.apache.poi.ss.usermodel.Sheet;
导入org.apache.poi.ss.usermodel.工作簿;
导入org.apache.poi.xssf.usermodel.xssf工作簿;
公共类自适应控制器{
公共静态void main(字符串[]args)引发IOException{
字符串excelFilePath=“test.xlsx”;
FileInputStream inputStream=新FileInputStream(新文件(excelFilePath));
工作簿=新XSSF工作簿(inputStream);
Sheet firstSheet=工作簿。getSheetAt(0);
迭代器迭代器=firstSheet.Iterator();
while(iterator.hasNext()){
行nextRow=iterator.next();
迭代器cellIterator=nextRow.cellIterator();
while(cellIterator.hasNext()){
Cell=cellIterator.next();
开关(cell.getCellType()){
case Cell.Cell\u类型\u字符串:
System.out.print(cell.getStringCellValue());
打破
case Cell.Cell\u类型\u布尔值:
System.out.print(cell.getBooleanCellValue());
打破
case Cell.Cell\u类型\u数值:
System.out.print(cell.getNumericCellValue());
打破
}
系统输出打印(“-”);
}
System.out.println();
}
workbook.close();
inputStream.close();
}
}
但是当我在eclipse中运行代码时,我得到了以下异常
Exception in thread "main" org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62)
at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:427)
at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:162)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:263)
at AdaptiveControllers.main(AdaptiveControllers.java:17)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)
... 4 more
Caused by: java.lang.NoClassDefFoundError: org/apache/poi/POIXMLTypeLoader
at org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument$Factory.parse(Unknown Source)
at org.apache.poi.xssf.model.ThemesTable.<init>(ThemesTable.java:46)
... 9 more
Caused by: java.lang.ClassNotFoundException: org.apache.poi.POIXMLTypeLoader
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 11 more
线程“main”org.apache.poi.POIXMLException中的异常:java.lang.reflect.InvocationTargetException
位于org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62)
在org.apache.poi.poimmldocumentpart.read(poimmldocumentpart.java:427)
位于org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:162)
位于org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:263)
在AdaptiveControllers.main(AdaptiveControllers.java:17)
原因:java.lang.reflect.InvocationTargetException
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)
位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源)
位于java.lang.reflect.Constructor.newInstance(未知源)
位于org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)
... 4更多
原因:java.lang.NoClassDefFoundError:org/apache/poi/POIXMLTypeLoader
位于org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument$Factory.parse(未知源)
位于org.apache.poi.xssf.model.ThemesTable.(ThemesTable.java:46)
... 9更多
原因:java.lang.ClassNotFoundException:org.apache.poi.POIXMLTypeLoader
位于java.net.URLClassLoader$1.run(未知源)
位于java.net.URLClassLoader$1.run(未知源)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于sun.misc.Launcher$AppClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
... 还有11个
我做错了什么?谁能帮帮我吗 您的版本混合了
poi-3.11
和poi-3.15-beta2
。不要那样做。再见。@AxelRichter谢谢!我用poi-3.11-beta2替换了poi-3.15-beta2,它可以工作。您有一个混合了poi-3.11
和poi-3.15-beta2
的版本。不要那样做。再见。@AxelRichter谢谢!我用poi-3.11-beta2替换了poi-3.15-beta2,它可以正常工作