当前位置: 首页 > 知识库问答 >
问题:

如何在Android应用中读取大型excel文件?

杨轶
2023-03-14
Workbook myWorkBook = WorkbookFactory.create(inputStream);
 java.lang.OutOfMemoryError
Failed to allocate a 40 byte allocation with 32 free bytes and 32B until OOM, max allowed footprint 402653184, growth limit 402653184

我遵循这个http://blog.kondratev.pro/2015/08/reading-xlsx-on-android-4-and-hopefully.html对其进行了编码。

尝试逐行读取:

InputStreamReader inputStreamReader =  new InputStreamReader(inputStream, StandardCharsets.UTF_8);
                        reader = new BufferedReader(inputStreamReader);
                        String line = null; 
                        while((line = reader.readLine())!= null){
                            Log.d(APP_LOGS, line);
                        }

但结果却是:

PK��$��O������������������������������xl/worksheets/sheet1.xml��ێ�F�� C��-̠۫U�"�h�M�h�h�F
D: >���ڞ�r3������s!��|��s���T�u��wY&*��������'�:u�i��Rnݟ�v��~�\�~��R6N+P�[��4�����(��^�J�핽�Eܴ���Օ�q�
D: ��>�8+�^a�!j����TȲ�E��㦍_���P+��\�%Z�j߬UJm�ē�Dv��,P�@�~?UO�dզx�����22�{��z�x21n3��}.��+"��������"�����!��"�}/���(0Cdx��6���m�� ��͏�U{��g���ߙ�ԓc��6}S��v�-ݺ�k���_;���INu���dv86�:�N*��)o^T�O�6ǶFV��wu1�tթ'*�����ǜ�Yٿ�����_�
D: ��G�a$0��#x��@|:B�bF0[!��f�Ħ������(n��F���o������V��ڛW�����x������w�4�x�;�yG�w�I6^��L��!]3��/V�`}��M��/�^��W�Ir?6�<�3��%�<_�������'���D�$"�D�o%"˻B>�@��~j2�Y���2ò��nf.̸��F�[�,{��p���%\�,Q���>w��.�B��"f."���tY"����ß�P�gh�Y�h�ܱ�<��܊[�<�L���h�ܱ7�< ߌ=#�cU��rGz|� lKcKzY�����q��-m=���J4T�H�[��-m��U�У�F�j#fK[�lU"�h�Ѹ�(���
D: �*z��h\b�mikm�J�-.7�k��Dz(m�}�������Q�"Y~������ڈ���H���B9�Q���m���P2JC�`(%��d0���!P2J�@�(%C����!P2J�B�P(
D: %C�d(����P2J�B�P(%àd���aP2J�A�0(%àdB(�J&��   �dB(�J&��   �dB(�J�C�p(%ád8����P2J�C�p(%#�d����P2JF@(%#�d���h��ח���揪���뿆�=և���7մ�[��t�J5R��n�2N�I.�M��:�w�U
D: ���z�T9Jg�l�_6�n�i�ĕ���:�d����,ݺ�[ڇ5?���PK<�r�����������PK��$��O������������������������#������xl/worksheets/_rels/sheet1.xml.rels��M��0������Y���t[�[���m,��޾^t`
D: ]�RO����,��q�)x��@���M~0p�7[P��;��gwط͉g��F�)�*�c�q�(v�D�Ⱦl���eLF�?���_�S��tt5���?v����!���>�y�.�Z����ـֿ���EF��Lj]|������PK�j�������3����PK��$��O������������������������!������xl/drawings/worksheetdrawing1.xml��]n�0��U�iZC^�N0�%n�����~�J6i{m�?���nt��Db|#�z��]#�o��(8��`��F\��n��5�ϼ�"�{^��}��ZJV=:�2�Ӵ
D: � ��:�   �IvVΫ�E��{ĸ�&�������Mׄ�5
D: �A��8!�b��f଩�Q=P���3��6�*��)�HB�<    8����R���_���O�,�Czȇ�&^��eFwh��ȸ8��ݱ*�6�(+l�^ޭ̳"�_PKbi���������PK��$��O������������������������������docProps/app.xml�RAn�0|A� �SJ��0(��"�5`'=o��E�"   �V���R2��
D: z�m83��+Ld��E�*E�ބ��C-��_n>��|.x��  I��wj�B���� �j�1ǵ�d:�VY�YiC��1dh[k�!�_=z��ey'���ln�(Ή��7�   f�G��S�yZmB���V;7Y�-8B%_    ��0�{6�V�4R�ǤZ�,x�#����V�mgv�.'�#����\� ^z/����ɐ��Q.E2����쐾�[H�����s�J\t܍��7�����j�=�}x���yvפ�u���_��v!�cn����t��̞�����8���fM
D: Z.>
D: :%/���|�]]ݭ��e9fN��5���PK���k���������PK��$��O������������������������������docProps/core.xml���n�0��`�@zm����&n�j&K�ewM9h3Z��y�T������ے-����:��ф�hJ��9zݬ�9����u�!G8�(�2a�h,<�ƀ�\D�1ar���0��؁�.  �a�X�}x�[l���[�BfX��%���،FtR�bT���A)0Ԡ@{�iB���*ws��\�J���M�����l�6i�
D: �)~_?�[���J��*�S&,pe�8���*&��ǔ�$ݐ9#)��>2�g}/<>7�X�Ø�G�plm׳c��K͝_��$��&Ʋ����m�,�^�=�a����PK�V}�6����l����PK��$��O������������������������������xl/theme/theme1.xml�Yˎ�6�����D�-�1�'�3i3��I�,i��S�@R3c�d�M�i�M��(�h���cHЦQ�a���$m�>���X$Ͻ<��<W�\�rp��4�Z�K�P����'a׺s2�k[����u�9�֕��.�}�i��}ص"!�}����MQ"Ǧ��P�&��3�6&v�q�vqbU��u��t�}4�~�D�N"PH�<�)�@c��f'9A�`AuDPn����c��Z�`V���r!��S|,p
D: Iג�� :�}p�^a�Ͷ���Y��c�$7,p����������F�Qs���@ߗ+�m`�~�?�*�*/

共有1个答案

狄冠宇
2023-03-14

检查此库以分析大型xlsx文件。完整的文件在这里

只需添加

repositories {
        maven {
            url "https://jitpack.io"
        }
    }

而且

implementation 'com.github.kiranbjm:xlsxparser:1.01'
InputStream is = new FileInputStream(new File("/path/to/workbook.xlsx"));
Workbook workbook = StreamingReader.builder()
        .rowCacheSize(100)    // number of rows to keep in memory (defaults to 10)
        .bufferSize(4096)     // buffer size to use when reading InputStream to file (defaults to 1024)
        .open(is);            // InputStream or File for XLSX file (required)
 类似资料:
  • 我在用图书馆 我在努力 库,但无法将其转换为工作簿 注意:在最终结果中,我希望返回XSSFWorkbook 上面的代码会内存溢出,任何帮助都将提前感谢

  • 本文向大家介绍Android应用读取Excel文件的方法,包括了Android应用读取Excel文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android应用读取Excel文件的方法。分享给大家供大家参考,具体如下: ReadExcel.java文件: jxl.7z点击此处本站下载。 希望本文所述对大家Android程序设计有所帮助。

  • 问题内容: 我有一个平面文件,其中包含339276行文本,大小为62.1 MB。我试图读取所有行,根据我所具有的某些条件解析它们,然后将它们插入数据库。 我最初尝试使用bufio.Scan()循环和bufio.Text()来获取行,但我的缓冲区空间不足。我切换到使用bufio.ReadLine / ReadString / ReadByte(我尝试了每种方法),并且每种方法都有相同的问题。我没有足

  • 该编码能够读取excel文件中的小数据...但不读取excel文件中的大数据文件....如何进一步修改代码?

  • 问题内容: 我已经搜索了stackoverflow,但是没有找到明确的答案。如何将数据从XLS文件的特定行和列读取到我的Android应用程序?如何读取XLS文件?我不想将其转换为CSV,因为在尝试将其转换时出现错误。 也许我可以使用此http://www.andykhan.com/jexcelapi/tutorial.html#reading,但我什至不知道如何将其导入到我的项目中。请帮忙。 问

  • 我想从文本文件中读取文本。在下面的代码中,会发生异常(这意味着它会转到catch块)。我将文本文件放在应用程序文件夹中。我应该把这个文本文件(mani.txt)放在哪里才能正确阅读?