首页 > 其他 > 详细

项目中遇到的问题----------------大批量读取excel该怎么办?

时间:2019-07-29 19:21:09      阅读:128      评论:0      收藏:0      [点我收藏+]

1.excel数据量过大该怎么处理好点?

依常规的处理方式,会把导入的excel文件转为流进行处理,但是如果excel数据量达到 几十兆,该怎么处理呢?

几十万的数据导入,直接会崩溃的。

答案:

POI读取Excel有两种模式,一种是用户模式,一种是SAX事件驱动模式,将xlsx格式的文档转换成CSV格式后进行读取。用户模式API接口丰富,使用POI的API可以很容易读取Excel,但用户模式消耗的内存很大,当遇到很大sheet、大数据网格,假空行、公式等问题时,很容易导致内存溢出。POI官方推荐解决内存溢出的方式使用CVS格式解析,即SAX事件驱动模式。

技术分享图片

 POI以SAX解析excel2007文件

解决思路:通过继承DefaultHandler类,重写process(),startElement(),characters(),endElement()这四个方法。process()方式主要是遍历所有的sheet,并依次调用startElement()、characters()方法、endElement()这三个方法。startElement()用于设定单元格的数字类型(如日期、数字、字符串等等)。characters()用于获取该单元格对应的索引值或是内容值(如果单元格类型是字符串、INLINESTR、数字、日期则获取的是索引值;其他如布尔值、错误、公式则获取的是内容值)。endElement()根据startElement()的单元格数字类型和characters()的索引值或内容值,最终得出单元格的内容值,并打印出来。

 

具体查看地址:https://www.cnblogs.com/swordfall/p/8298386.html

项目中遇到的问题----------------大批量读取excel该怎么办?

原文:https://www.cnblogs.com/yunliu0603/p/11265476.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!