XLSXファイルからデータを読み取る必要があるため、現在はApachiで作業しており、後でCSVに変換されます。私のXSSFWorkbookの作成に使用しているコードは次のとおりです。毎回例外が発生しています。私が見つけたことから、XMLBeansが原因の一部です。しかし、この例ではPOIの依存関係になっています。Apache POIを使用してXLSXファイルを読み取るときの例外
public static void appendCSV(File inputFile, String outputFile, String tag)
{
System.out.println(inputFile.getAbsolutePath());
InputStream inp = null;
try {
inp = new FileInputStream(inputFile);
XSSFWorkbook wb = new XSSFWorkbook(inp);
上記のブロックの最後の行に例外がスローされます。
Exception in thread "main" org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
at org.apache.poi.POIXMLFactory.createDocumentPart(POIXMLFactory.java:65)
at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:601)
at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:174)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:279)
at BigBangarang.appendCSV(BigBangarang.java:68)
at BigBangarang.main(BigBangarang.java:268)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:56)
at org.apache.poi.POIXMLFactory.createDocumentPart(POIXMLFactory.java:62)
... 5 more
Caused by: java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setLoadEntityBytesLimit(I)Lorg/apache/xmlbeans/XmlOptions;
at org.apache.poi.POIXMLTypeLoader.<clinit>(POIXMLTypeLoader.java:50)
at org.apache.poi.xssf.model.SharedStringsTable.readFrom(SharedStringsTable.java:127)
at org.apache.poi.xssf.model.SharedStringsTable.<init>(SharedStringsTable.java:108)
... 11 more
これまで誰かがこの状況に遭遇しましたか?私はXMLBeansの最新のリリースを持っており、古いバージョンを見つける必要があるかもしれないと感じています。メソッドが欠けていると言います。 XLSXを読んだり、データを処理する前に単純にCSVに変換したりする方法があるかどうかわかりません。
Apache POIとJavaバージョンとは何ですか? – esprittn
ライブラリに競合があります。 Mavenを使用している場合は、pom.xmlを投稿してください。 –
POI 3.14、Java 7.以下は、参照されているすべてのライブラリのスクリーンショットです。以前のApacheコモンズライブラリのいくつかと競合する可能性がありますか? http://i.imgur.com/pfojX1H.png – Kristoff