我在 Android 项目中使用 POI 读取 XLS 文件时遇到问题。要阅读文件,我已经这样做了:
InputStream is = null;
try {
is = getInstrumentation().getContext().getAssets().open("abc.xlsx");
} catch (IOException e) {
}
这解决了读取问题,但现在我面临此代码的另一个问题:
XSSFWorkbook workbook = new XSSFWorkbook(is);
XSSFSheet sheet = workbook.getSheetAt(0);
这给了我以下错误:
java.lang.NoClassDefFoundError: org.apache.poi.xssf.usermodel.XSSFWorkbook
at com.evernote.test.Xls_Reader.<init>(Xls_Reader.java:36)
at com.evernote.test.Main.readTestCaseXls(Main.java:87)
at com.evernote.test.Main.testCreateAccount(Main.java:62)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)
我已经包含了所有必要的 POI 库,并且使用这些库它可以在 Java 项目中正常工作。问题出在Android项目中。
我在 project->properties->Javabuild path->Add external jar 中添加了这个 jar。我包括以下 jar poi-scratchpad-3.9-20121203、poi-ooxml-schemas-3.9-20121203、poi-ooxml-3.9-20121203、poi-ooxml-3.9、poi-excelant-3.9-20121203、poi-examples-3.9 -20121203,poi-3.9-20121203,为了和导出我没有检查 poi-ooxml-schemas-3.9-20121203 jar 如果我检查了这个,那么它会给出错误 {Dx Trouble writing output: Too many methods: 66024; 最大值为 65536。按包:13 java.lang 1 java.lang.reflect}。
谢谢。