java处理excel-xlsx格式大文件的解决方案
https://www.cnblogs.com/scw2901/p/4378424.html
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的代码改为下面的方式即可解决问题。
1 SAXParserFactory m_parserFactory = null; 2 // If unable to create an instance, let's try to use 3 // the XMLReader from JAXP 4 m_parserFactory = SAXParserFactory.newInstance(); 5 m_parserFactory.setNamespaceAware(true); 6 7 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格式大文件的解决方案相关推荐
- java代码将csv格式的文件导入数据库
java代码将csv格式的文件导入数据库 最近接到了一个需求,将csv文件的内容通过java进行入库操作,在此记录一下整个完整的代码 主要逻辑 读取csv的每一个数据,对数据对应的对象赋值,将对象放入 ...
- Android之PC浏览器上传表单格式大文件到手机客户端read函数阻塞问题
1 .问题 PC浏览器上传表单格式大文件到手机服务器端,然后read文件真实数据时候出现阻塞. 比如 User-Agent: PostmanRuntime/7.26.1Accept: */*Cache ...
- android 阻塞式函数,Android之PC浏览器上传表单格式大文件到手机客户端read函数阻塞问题...
1 .问题 PC浏览器上传表单格式大文件到手机服务器端,然后read文件真实数据时候出现阻塞. 比如 User-Agent: PostmanRuntime/7.26.1 Accept: */* Cac ...
- java 导入excel 日期格式转换
java 导入excel 日期格式转换 导入日期格式后 获取到的value值为 数值或小数值 直接上硬货 cell = row.getCell(4);String go_time = getCellV ...
- excel xml mysql数据库,数据库文本文档excel表格-excel xml格式的文件 导入到 MYSQL 数据库的语句...
教你怎样将Word表格导入到Excel中 方法如下: 1.首先,打开媒介工具"记事本",将word文件里需要导入的数据,复制粘贴到记事本当中,然后保存成为txt文件,本例中将txt ...
- pd.read_excel出现xlrd.biffh.XLRDError: Excel xlsx file; not supported解决方案
大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.喜 ...
- 大文件传输解决方案:分片上传 / 下载限速
前言 不少项目中会遇到上传下载视频.更新包.应用程序等文件,此类文件的共同点就是十分巨大,我在项目中遇到过 4G 左右的文件同时 100 多台机器下载,此时如果用 post 上传和下载想一下都不可能, ...
- java读取doc、docx、ppt、pptx、xls、xlsx格式的文件
前言: 通常我们用apache 的POI库对以上文档进行操作,apache POI官网 apache POI官网 这里推荐到官网下载导入到项目,maven下载的它会缺少几个包. 格式上后缀带x(doc ...
- openpyxl对excel,.xlsx格式的文件进行操作
获取.xlsx格式文件的数据 1.加载数据表,获取excel表中一个sheet表的数据 wb=openpyxl.load_workbook(self.filename) sheet_obj=wb[se ...
- go读取Excel(xlsx格式)文件
主要使用 "baliance.com/gooxml" 中的 spreadsheet 包 原理:windows下xlsx格式文件实际上是一个压缩包,打开后可以看到具体的格式 上代码: ...
最新文章
- Bitcoin推特遭到清洗!发生了什么?
- .net微软消息队列(msmq)简单案例
- Zookeeper 安装和配置---学习二
- Oracle并行事务回滚相关参数及视图
- python 菜单调用_python---权限管理和菜单生成
- 内存管理--分发您的程序存储器
- win10安装wsl2和图形化界面
- matlab prn文件,PRN文件扩展名 - 什么是.prn以及如何打开? - ReviverSoft
- 使用Eclipse Babel语言包汉化eclipse
- 服务器性能与功率,服务器电源功率并非越大越好
- 十八、D触发器介绍:
- java: 程序包com.zyt.hm.VO不存在
- 服务器开虚拟机总是gpu满载,vSphere 环境机器学习 GPU 加速方案选型
- yolov5 训练时报错踩坑(不定时更新)
- JavaWeb_07_Ajax
- Skywalking光会用可不行,必须的源码分析分析 - Skywalking Agent 插件解析
- Android工程师进阶之路 Android开发进阶 从小工到专家 上市啦
- 【Ubuntu】安装Adobe Acrobat
- 西方哲学史 -- 毕达哥拉斯
- 化学空间对接概念性验证 | Chemical Space Docking