java - 如何在 android 应用程序中以编程方式读取 excel 文件(.xlsx),即以 5000 行为一组?

标签 java android dalvik

<分区>

如何读取大型 xlsx 文件

错误出现是因为我正在内存中加载整个 excel 文件。无论如何,我可以分块读取 excel 文件,从而减少内存消耗吗? 我正在使用“Aspose Cells for Android”库来读取 excel 文件。请帮忙。

错误是

java.lang.OutOfMemoryError: [memory exhausted] at dalvik.system.NativeStart.main(Native Method)

最佳答案

.xlsx 文件实际上是基于 xml 的压缩文件,这就是为什么它们比传统的 .xls 格式占用更少的磁盘空间。您可以将文件扩展名更改为 .zip 以检查内部。

因此,API 所做的是先解压缩文件,然后读取它。 解压缩时可能会出现内存耗尽的情况。

如果大小为10Mb,实际解压后的内存大小可能超过1Gb,您可以尝试通过在android中添加更多可视内存来配置您的手机。

或者只是将 PC 中的大文件切割成小文件放在一个文件夹中,然后用您的应用程序处理该文件夹。

关于java - 如何在 android 应用程序中以编程方式读取 excel 文件(.xlsx),即以 5000 行为一组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20727585/

相关文章:

java - 我如何重建我的代码以适应以下 GUI

java - 为什么 cursor.getColumnIndexOrThrow() 给出 nullpointerexception?

android - 由于 Android GC 性能而改变编码风格,有多远是太远了?

java - 在 dalvik 中,什么表达式将生成指令 'not-int' 和 'const-string/jumbo'?

java - SWT 复合变换

java - android 和原生 android(Android NDK) 有什么区别?

java - 如何在Java [Ubuntu平台]中重命名文件?

android - Android Studio 中 Navigation Drawer Preview 渲染问题

android - 如何在android中通知需要WAKE_LOCK?

java - 导入 rt.jar 给我 dalvik 错误