【问题标题】:How to read xlsx file in an android application?如何在 Android 应用程序中读取 xlsx 文件?
【发布时间】:2014-09-06 08:30:08
【问题描述】:

我知道在 stackoverflow 上有很多相同的问题,但我似乎看不到任何可能的解决方案来阅读 xlsx 的内容。

我尝试过的:

我尝试将整个 Apache POI 库放入一个 android 应用程序并尝试读取 xlsx 文件。 然而,问题在于 Apache POI 库过于繁重,无法放入 android 应用程序中。一条错误消息显示 Dalvik VM 无法执行具有超过 65536 个方法的应用程序。

有什么方法可以在 android 应用程序中读取 xlsx 文件的内容(可能只是内容,其他格式,如单元格的颜色/宽度并不重要)? 或者是否有人试图削减 apache poi 库以便 Dalvik VM 可以执行它? 正如我看到 Google Play 的 QuickOffice 也在使用 Apache POI,但我真的不知道如何将 POI 放入应用程序中。 非常感谢。

【问题讨论】:

标签: java android excel apache-poi xlsx


【解决方案1】:

Apache POI 3.5 增加了对所有 OOXML(docx、xlsx 等)的支持

查看XSSF sub 项目

【讨论】:

  • 也就是说只能提取Apache POI的XSSF/HSSF部分?
  • 这是一个非常大的项目,不能在Android应用中使用。
【解决方案2】:

刚刚在 github 上提交了 XSSF Android 使用演示:

https://github.com/andruhon/AndroidReadXLSX

核心思想只是从 poi-ooxml 和 poi-ooxml-schemas 中删除所有似乎不需要读取 XLSX 的文件。例如 poi-ooxml 中的 xslf 和 xwpf,poi-ooxml-schemas 中的 schemas presentationml 和 wordrpocessingml 以及其他东西......

之后,构建您的项目并尝试读取 XLSX,读取失败后的日志并查看导致此失败的依赖项,从原始 poi-ooxml-schemas jar 复制丢失的文件。一次又一次地重复,除非它有效。

UPD:不再需要 --core-library 选项!
http://blog.kondratev.pro/2014/09/reading-xlsx-on-android-3.html

上面提到的Demo已经包含了简化的poi-ooxml和poi-ooxml-schemas。

【讨论】:

  • 最新版本的 Apache POI (3.11 beta 2) 没有 stax 依赖,也没有 dom4j 依赖,所以你最好从那个版本开始,因为它会更简单
  • 它实际上取决于 stax 以防 android 甚至更多,因为它依赖于使用一些 javax 方法的 xml beans,这些方法在 android 中没有实现。 ---- 但是在这种情况下复制 stax 并没有帮助,因为这个 beta 版尝试使用 javax.xml.stream.XMLEventFactory 并且失败了。
  • 所以,暂时只有 3.10-final。
  • UPD:不再需要 --core-library 选项!
  • 嗨,安德鲁,我正在使用 3.10-final 来读取 xlsx 文件,但获取 java.lang.reflect.InvocationTargetException 还添加了 dom4j-1.6.1 需要紧急请提出一些建议以使其对我有用。跨度>
猜你喜欢
  • 1970-01-01
  • 2017-08-20
  • 2015-07-30
  • 2014-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
  • 1970-01-01
相关资源
最近更新 更多