Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Apache POI打开.xlsx文件时发生异常_Android_File_Exception Handling_Apache Poi - Fatal编程技术网

Android 使用Apache POI打开.xlsx文件时发生异常

Android 使用Apache POI打开.xlsx文件时发生异常,android,file,exception-handling,apache-poi,Android,File,Exception Handling,Apache Poi,我一直在开发一个android应用程序,在这个应用程序中,我必须打开.xls和.xlsx文件以进一步实现。在.xls的情况下,一切正常,但当我试图打开.xlsx文件时,它会给我一个例外。下面是我的代码 请帮我解决这些异常 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, r

我一直在开发一个android应用程序,在这个应用程序中,我必须打开.xls和.xlsx文件以进一步实现。在.xls的情况下,一切正常,但当我试图打开.xlsx文件时,它会给我一个例外。下面是我的代码 请帮我解决这些异常

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == RESULT_code  && resultCode == RESULT_OK && null != data) {
            String FileName = data.getData().getLastPathSegment();

            String FilePath = data.getData().getPath();
            if(FilePath.endsWith(".xlsx")){
try{
                    FileInputStream file = new FileInputStream(new File(FilePath));
                    XSSFWorkbook myWorkBook2 = new XSSFWorkbook(file);
                    XSSFSheet mySheet2 = myWorkBook2.getSheetAt(0);}
                catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } 


                }
我使用的罐子:

  • dom4j-1.6.1.jar
  • log4j-1.2.13.jar
  • poi-3.9-20121203.jar
  • poi-ooxml-3.9-20121203.jar
  • xmlbeans-2.3.0.jar
Logcat错误

07-05 14:09:31.654: E/AndroidRuntime(6774): FATAL EXCEPTION: main
07-05 14:09:31.654: E/AndroidRuntime(6774): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { act=android.intent.action.GET_CONTENT cat=[android.intent.category.OPENABLE] dat=file:///sdcard/test .xlsx flg=0x3000000 cmp=miyowa.android.microsoft.wlm/com.miyowa.android.framework.ui.miyowaExplorer.MiyowaExplorer (has extras) }} to activity {com.example.converter/com.example.converter.Homepage}: org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
07-05 14:09:31.654: E/AndroidRuntime(6774):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3142)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:3185)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at android.app.ActivityThread.access$1100(ActivityThread.java:134)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at android.os.Looper.loop(Looper.java:137)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at android.app.ActivityThread.main(ActivityThread.java:4666)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at java.lang.reflect.Method.invokeNative(Native Method)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at java.lang.reflect.Method.invoke(Method.java:511)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at dalvik.system.NativeStart.main(Native Method)
07-05 14:09:31.654: E/AndroidRuntime(6774): Caused by: org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException
07-05 14:09:31.654: E/AndroidRuntime(6774):     at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:403)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:207)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at com.example.converter.Homepage.onActivityResult(Homepage.java:358)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at android.app.Activity.dispatchActivityResult(Activity.java:4694)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at android.app.ActivityThread.deliverResults(ActivityThread.java:3138)
07-05 14:09:31.654: E/AndroidRuntime(6774):     ... 11 more
07-05 14:09:31.654: E/AndroidRuntime(6774): Caused by: java.lang.reflect.InvocationTargetException
07-05 14:09:31.654: E/AndroidRuntime(6774):     at java.lang.reflect.Constructor.constructNative(Native Method)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
07-05 14:09:31.654: E/AndroidRuntime(6774):     at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)
07-05 14:09:31.654: E/AndroidRuntime(6774):     ... 17 more
07-05 14:09:31.654: E/AndroidRuntime(6774): Caused by: java.lang.NoClassDefFoundError: org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument$Factory
07-05 14:09:31.654: E/AndroidRuntime(6774):     at org.apache.poi.xssf.model.ThemesTable.<init>(ThemesTable.java:44)
07-05 14:09:31.654: E/AndroidRuntime(6774):     ... 20 more
07-0514:09:31.654:E/AndroidRuntime(6774):致命异常:main
07-05 14:09:31.654:E/AndroidRuntime(6774):java.lang.RuntimeException:未能传递结果ResultInfo{who=null,request=1,result=-1,data=Intent{act=android.Intent.action.GET_CONTENT cat=[android.Intent.category.OPENABLE]dat=file:///sdcard/test .xlsx flg=0x3000000 cmp=miyowa.android.microsoft.wlm/com.miyowa.android.framework.ui.miyowaExplorer.miyowaExplorer(有附加项)}}到活动{com.example.converter/com.example.converter.Homepage}:org.apache.poi.poimlException:java.lang.reflect.InvocationTargetException
07-05 14:09:31.654:E/AndroidRuntime(6774):在android.app.ActivityThread.deliverResults(ActivityThread.java:3142)
07-05 14:09:31.654:E/AndroidRuntime(6774):在android.app.ActivityThread.handleSendResult(ActivityThread.java:3185)
07-05 14:09:31.654:E/AndroidRuntime(6774):在android.app.ActivityThread.access$1100(ActivityThread.java:134)
07-05 14:09:31.654:E/AndroidRuntime(6774):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
07-05 14:09:31.654:E/AndroidRuntime(6774):在android.os.Handler.dispatchMessage(Handler.java:99)上
07-05 14:09:31.654:E/AndroidRuntime(6774):在android.os.Looper.loop(Looper.java:137)上
07-05 14:09:31.654:E/AndroidRuntime(6774):位于android.app.ActivityThread.main(ActivityThread.java:4666)
07-05 14:09:31.654:E/AndroidRuntime(6774):位于java.lang.reflect.Method.Invokenactive(本机方法)
07-05 14:09:31.654:E/AndroidRuntime(6774):位于java.lang.reflect.Method.invoke(Method.java:511)
07-05 14:09:31.654:E/AndroidRuntime(6774):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
07-05 14:09:31.654:E/AndroidRuntime(6774):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
07-05 14:09:31.654:E/AndroidRuntime(6774):在dalvik.system.NativeStart.main(本机方法)
07-05 14:09:31.654:E/AndroidRuntime(6774):由以下原因引起:org.apache.poi.POIXMLException:java.lang.reflect.InvocationTargetException
07-05 14:09:31.654:E/AndroidRuntime(6774):位于org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62)
07-05 14:09:31.654:E/AndroidRuntime(6774):在org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:403)
07-05 14:09:31.654:E/AndroidRuntime(6774):位于org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155)
07-05 14:09:31.654:E/AndroidRuntime(6774):位于org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:207)
07-05 14:09:31.654:E/AndroidRuntime(6774):在com.example.converter.Homepage.onActivityResult(Homepage.java:358)
07-05 14:09:31.654:E/AndroidRuntime(6774):在android.app.Activity.dispatchActivityResult(Activity.java:4694)上
07-05 14:09:31.654:E/AndroidRuntime(6774):在android.app.ActivityThread.deliverResults(ActivityThread.java:3138)
07-05 14:09:31.654:E/AndroidRuntime(6774):。。。还有11个
07-05 14:09:31.654:E/AndroidRuntime(6774):由以下原因引起:java.lang.reflect.InvocationTargetException
07-05 14:09:31.654:E/AndroidRuntime(6774):位于java.lang.reflect.Constructor.constructNative(本机方法)
07-05 14:09:31.654:E/AndroidRuntime(6774):位于java.lang.reflect.Constructor.newInstance(Constructor.java:417)
07-05 14:09:31.654:E/AndroidRuntime(6774):位于org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:60)
07-05 14:09:31.654:E/AndroidRuntime(6774):。。。还有17个
07-05 14:09:31.654:E/AndroidRuntime(6774):由以下原因引起:java.lang.NoClassDefFoundError:org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument$Factory
07-05 14:09:31.654:E/AndroidRuntime(6774):位于org.apache.poi.xssf.model.ThemesTable.(ThemesTable.java:44)
07-05 14:09:31.654:E/AndroidRuntime(6774):。。。20多

请参阅-您缺少
poi ooxml模式
文件,这就是为什么您得到模式类的类未找到异常的原因

请参阅-您缺少
poi ooxml模式
文件,这就是为什么您得到模式类的类未找到异常的原因

是Java的另一个API,并且安卓它读取并创建.xlsx文件。没有依赖项,只有一个jar文件

是Java和Android的另一个API。它读取并创建.xlsx文件。没有依赖项,只有一个jar文件

我添加了poi ooxml模式,但现在我将转换为Dalvik格式失败,出现错误2,我的应用程序无法运行..我现在该怎么办?问一个新问题,因为您现在遇到了另一个问题!好的,你能告诉我除了ApachePOI之外,是否还有其他Api可以用来读取.xlsx文件吗?POI可以读取.xlsx文件。我们现在已经解决了这个问题(缺少jar),如果您有更多问题,您需要为thosei添加的poi ooxml模式提出一个新问题,但现在我将转换为Dalvik格式失败,出现错误2,并且我的应用程序无法运行。现在我该怎么办?问一个新问题,因为您现在遇到了另一个问题!好的,你能告诉我除了ApachePOI之外,是否还有其他Api可以用来读取.xlsx文件吗?POI可以读取.xlsx文件。我们现在已经解决了这个问题(缺少jar),如果您有更多的问题,您需要为这些问题提出一个新问题此库不免费此库不免费