使用 Apache POI 打开 .xlsx 文件时出现异常

2023-12-05

我一直在开发一个 Android 应用程序,其中我必须打开 .xls 和 .xlsx 文件才能进一步实现。如果是 .xls,一切工作正常,但当我尝试打开 .xls x 文件时,它给了我异常。下面是我的代码 请帮我解决这些异常

@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

See the Apache POI 组件和依赖项页面- 你错过了poi-ooxml-schemas文件,这就是为什么您会收到模式类的类未找到异常的原因

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Apache POI 打开 .xlsx 文件时出现异常 的相关文章

随机推荐

  • java Regex - 分割但忽略引号内的文本?

    仅使用正则表达式方法 方法 String replaceAll 和 ArrayList 如何将字符串拆分为标记 但忽略引号内存在的分隔符 分隔符是非字母数字或引用文本的任何字符 例如 字符串 你好 世界 这个 有两个令牌 应该输出 hell
  • Google Cloud CDN 以存储桶为后端签署 cookie

    作为替代方案签名网址带有 url 前缀 我试图获取签名cookie在职的 Google Cloud CDN 设置了一个后端存储桶 该存储桶已配置并适用于标准签名网址 使用这些去例子我在nodejs typescript 中实现了一个cook
  • 使用 -lpthread 标志时对“pthread_init”的未定义引用:

    我正在编译使用 gcc o outfile infile c lpthread 唯一未定义的参考是pthread init 我尝试过使用 pthread代替 lpthread 根据网上的一些建议 I am包括
  • 更改 Firemonkey StringGrid 中的文本大小

    如何更改 stringgrid 标题中的文本大小 你可以写一个OnApplyStyleLookup事件处理程序与此类似 procedure TForm1 StringGrid1ApplyStyleLookup Sender TObject
  • 从代码隐藏中打开 jQuery 对话框

    所以我必须从代 码隐藏中显示一个 jquery UI 对话框 我已经尝试了一切 this this this 并且还更改了这些答案以测试它是否适用于我但不起作用 我使用第一个解决方案 因为它是有组织的 如果我使用alert whatever
  • 使用默认触发器在窗口中消耗无限数据

    我有一个Pub Sub主题 订阅 并希望在一个订阅中消费和聚合无限数据Dataflow 我使用固定窗口并将聚合写入 BigQuery 读取和写入 没有窗口和聚合 工作正常 但是 当我将数据通过管道传输到固定窗口 以计算每个窗口中的元素 时
  • 如何在 OCaml 中使用列表实现二叉堆?

    我正在实施一个binary heap在 OCaml 中使用列表 只是为了提高我的 OCaml 技能 我觉得使用列表非常困难 经过两天的努力 我必须来这里寻求建议和提示 到目前为止 这是我的想法 显然我不能使用原来的array based使用
  • Android - AutoCompleteTextView 仅在退格时有效

    我有一个AutoCompleteTextView当用户键入时动态更新建议列表 我的问题是 当我输入时 列表会更新 但下拉列表不会显示 但是当我删除一个字符 退格键 时 会出现下拉菜单 我什至尝试明确地调用autoText showDropD
  • Python Tkinter 坐标函数不会在循环内移动画布对象

    我有一个函数 它从文本文件中读取位置 解析它们 然后使用 coords 函数将相应的对象移动到 tkinter 画布上列出的位置 正在从文件中读取数据并正确解析数据 但由于某种原因 coords 函数仅将对象移动到循环的最后一次迭代中文件中
  • WordPress:一页滚动 JQuery 脚本不起作用?

    尝试创建一个简单的一页滚动 在 WordPress 中 我有这样的导航标签 a href contact Contact a a href about About a 两个链接对应的 div 是这样的 div class bg 1 wrap
  • Grails 安全插件自定义重定向

    我是 Groovy 和 Grails 的新手 我使用 Spring Security 插件使用数据库请求的请求映射开发了一个应用程序 我想要根据角色自定义重定向到主页 如果用户是 ROLE ADMIN 他将被重定向到视图 adminUser
  • 从 https 中删除 www

    我正在尝试找到一个 htaccess 重写来删除 www 仅来自 https 页面 我发现的每篇文章都删除了所有页面的 www 我需要在 htaccess 中添加什么来执行此操作 https www mydomain com应该https
  • 当行值等于“yes”时连接 Google 表格中的标题值的数组公式

    I saw this问题但无法让它为我工作 因为它已经得到回答 并且从一年前开始 我觉得最好发布一个新问题 我有一个样本表 https docs google com spreadsheets d 1EqNfTWcNFgkv2gdovnH7
  • 返回多个变量以在 Laravel 中查看的最佳方法

    我有一个操作方法 其主体中有多个变量 如下所示 bus Bus all user User all employer employer all 将这些变量对象返回到视图正在做的事情是使用这样的代码 return view create gt
  • 使用 Nodejs 的 SendGrid 模板中的变量替换不起作用

    继USE CASE在 SendGrids github 上确实设法向我发送带有正确模板的电子邮件 但替换显然不起作用 并且在生成的电子邮件中留空 服务器端 const sgmailer require sendgrid mail sgmai
  • 使用 Protractor 设置 Angular 模型

    我正在尝试使用 Protractor 在我的网站上模拟用户故事 用户必须输入使用自动完成功能的输入 在现实生活中 用户必须在输入中键入一些文本 然后使用鼠标或更自然地使用向下箭头键选择正确的命题 问题是我似乎无法用 Protractor 来
  • 什么是 WINAPI_FAMILY_ONECORE_APP?

    我正在 GitHub 上查看 Microsoft 的 OpenSSL 端口 有一个提交引起了我的注意 那就是添加Win10通用平台支持 在提交中 一个名为WINAPI FAMILY ONECORE APP出现 然而 我在搜索时并没有找到太多
  • 如何禁用来自其他域的WebService调用

    我想避免其他人访问我的网络服务 我有一个名为 WebService asmx 的 Web 服务 它托管在 www xyz com 上 我们知道我们可以访问该服务 例如http www xyz com WebService asmx 如何避免
  • 如何强制Dotnet6桌面Winforms应用程序使用appsettings.json而不是Settings.settings?

    如何强制 Dotnet6 桌面 Winforms 应用程序使用 appsettings json 而不是 Settings settings App config 如果我在 Visual Studio 2022 中创建一个新的桌面应用程序以
  • 使用 Apache POI 打开 .xlsx 文件时出现异常

    我一直在开发一个 Android 应用程序 其中我必须打开 xls 和 xlsx 文件才能进一步实现 如果是 xls 一切工作正常 但当我尝试打开 xls x 文件时 它给了我异常 下面是我的代码 请帮我解决这些异常 Override pr