1、第一次读取7M左右的ecxel文件,使用poi 库实现,参考了下面的博文。

http://www.cnblogs.com/chenfool/p/3632642.html

使用上面的方法在 下面WorkbookFactory.create()这里会出现内存溢出的错误,将eclipse的参数调整为-Xmx3072m,仍然会出现这个错误。

fis = new FileInputStream(file);
book = WorkbookFactory.create(fis); 应该是因为上面的方法使用的DOM解析模式,使用流式解析大文件,不会出现内存溢出的问题。 2、经过google,找到了下面的帖子:
http://www.iteye.com/topic/624969
excel2007文件格式与之前版本不同,之前版本采用的是微软自己的存储格式。07版内容的存储采用XML格式,所以,理所当然的,对大数据量的 xlsx文件的读取采用的也是XML的处理方式SAX。 使用上面的方法,在
XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
这一句会出现
java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser的错误。
自己下载xerces.jar文件载入后会出现

java.lang.AbstractMethodError: org.apache.xerces.dom.ElementImpl.getTextContent()Ljava/lang/String的错误。

看来只能找其他方法了。

3、经过一番google,找到了下面这个链接

https://blogs.oracle.com/mei/entry/java_lang_classnotfoundexception_org_apache
按照上面的链接中介绍的方法,将生成XMLReader的代码改为下面的方式即可解决问题。
 SAXParserFactory m_parserFactory = null;
// If unable to create an instance, let's try to use
// the XMLReader from JAXP
m_parserFactory = SAXParserFactory.newInstance();
m_parserFactory.setNamespaceAware(true); XMLReader parser = m_parserFactory.newSAXParser().getXMLReader();

附录:整个过程中参考的网页链接如下:

java 读取excel 2007 .xlsx文件 poi实现 经测试7M左右文件没有问题

http://www.cnblogs.com/chenfool/p/3632642.html

大数据量的excel文件读取——excel2007(含代码及示例)   经测试36M左右文件没有问题,需按照上面所述稍作修改。

http://www.iteye.com/topic/624969

java.lang.AbstractMethodError: org.apache.xerces.dom.ElementImpl.getTextContent()Ljava/lang/String  xerces引起此错误的正确原因描述

http://stackoverflow.com/questions/14014989/java-lang-abstractmethoderror-org-apache-xerces-dom-elementimpl-gettextcontent

java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser   不使用xerces.jar的解决办法

https://blogs.oracle.com/mei/entry/java_lang_classnotfoundexception_org_apache

java处理excel-xlsx格式大文件的解决方案的更多相关文章

  1. POI操作Excel详解,读取xls和xlsx格式的文件

    package org.ian.webutil;   import java.io.File; import java.io.FileInputStream; import java.io.FileN ...

  2. Java 导出Excel xlsx、xls, CSV文件

    通用导出功能: 1.支持Excel xlsx.xls 2.支持CSV文件导出 3.数据库查询分页导出.内存导出 4.支持大批量数据导出 使用步骤如下 导入jar <dependency> ...

  3. Java中用内存映射处理大文件

    在处理大文件时,如果利用普通的FileInputStream 或者FileOutputStream 抑或RandomAccessFile 来进行频繁的读写操作,都将导致进程因频繁读写外存而降低速度.如 ...

  4. Java使用内存映射实现大文件的上传

    在处理大文件时,如果利用普通的FileInputStream 或者FileOutputStream 抑或RandomAccessFile 来进行频繁的读写操作,都将导致进程因频繁读写外存而降低速度.如 ...

  5. java解析Excel日期格式转换问题

    Excel上传导入,Excel里面单元格是日期的会解析出来数字,比如2020-07-11会解析为44023解决方法一: Excel单元格格式设置为文本格式.解决方法二: 使用代码处理,把解析出来的44 ...

  6. JS上传大文件的解决方案

    最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...

  7. Web上传大文件的解决方案

    需求:项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在500M内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以501M来进行限制. 第一步: 前端修改 由于项目使用的是 ...

  8. vue上传大文件的解决方案

    众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路. 实现文件夹 ...

  9. php无法上传大文件完美解决方案

    php.ini无法上传大文件完美解决办法 1.打开php.ini(打开方式就不用说了,百度一大堆) 2.查找post_max_size 表单提交最大数值,此项不是限制上传单个文件的大小,而是针对整个表 ...

随机推荐

  1. Linux Virtualization with Xen

    Xen is the new virtualization kid on the block. It's gaining visibility and importance at a speed on ...

  2. zookeeper 面试题2 比较乱

    Zookeeper是什么框架分布式的.开源的分布式应用程序协调服务,原本是Hadoop.HBase的一个重要组件.它为分布式应用提供一致性服务的软件,包括:配置维护.域名服务.分布式同步.组服务等.应 ...

  3. springboot+beetlsql+mysql整合

    一.工程目录结构 二.pom.xml文件配置 <dependency> <groupId>mysql</groupId> <artifactId>mys ...

  4. cakephp跳转到指定的错误页面

    第一步:修改core.php 第二步:创建AppExceptionRender.php文件 参考:https://blog.jordanhopfner.com/2012/09/11/custom-40 ...

  5. Flip

    Flip是一个能够让任意HTML.文本或jQuery Element产生漂亮翻转效果的jQuery插件. 可以配置翻转方向:从右到左.上到下或从左到右.下到上.翻转的速度也可以配置. 效果如下图所示: ...

  6. HBase列族高级配置

    转自:http://blog.sina.com.cn/s/blog_ae33b83901018euz.html ------------------ HBase有几个高级特性,在你设计表时可以使用.这 ...

  7. 2018年计科五班秋季C语言基础课第1次作业

    ---恢复内容开始--- 1.翻阅邹欣老师博客关于师生关系博客,并回答下列问题: (1)大学和高中最大的不同是没有人天天看着你,请看大学理想的师生关系是?有何感想? 答:我认为是邹欣老师说的健身教练 ...

  8. Tango Java API常数

    Tango Java API Constants常数 Constant Field Values常数字段值 Contents com.google.* com.google.* com.google. ...

  9. Android Messenger

    说到Android进程间通信,大家肯定能想到的是编写aidl文件,然后通过aapt生成的类方便的完成服务端,以及客户端代码的编写.如果你对这个过程不熟悉,可以查看Android aidl Binder ...

  10. Android-自定义RadioButton

    1.控件RadioButton需要用RadioGroup包裹起来,才能使用2.RadioButton必须设置ID才能实现单选功能3.RadioGroup有方向(垂直方向 和 水平方向)默认是垂直方向 ...