GithubHelp home page GithubHelp logo

swordfallyeung / poiexcel Goto Github PK

View Code? Open in Web Editor NEW
106.0 6.0 58.0 71 KB

针对excel几万条以上大数据量的读取,采用事件驱动模式,兼容excel2003和excel2007两种格式文件。

Java 100.00%

poiexcel's Introduction

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()的索引值或内容值,最终得出单元格的内容值,并打印出来。

POI通过继承HSSFListener类来解决Excel2003文件:
解决思路:重写process(),processRecord()两个方法,其中processRecord是核心方法,用于处理sheetName和各种单元格数字类型。

参考资料:

https://www.cnblogs.com/huangjian2/p/6238237.html

https://www.cnblogs.com/yfrs/p/5689347.html

http://blog.csdn.net/lishengbo/article/details/40711769

https://www.cnblogs.com/wshsdlau/p/5643847.html

http://blog.csdn.net/lipinganq/article/details/78775195

http://blog.csdn.net/lipinganq/article/details/53389501

http://blog.csdn.net/zmx729618/article/details/72639037

http://blog.csdn.net/daiyutage/article/details/53010491

poiexcel's People

Contributors

swordfallyeung avatar

Stargazers

 avatar zengjilong avatar simmonz avatar  avatar private avatar  avatar  avatar Edward.Li avatar lafe avatar  avatar  avatar  avatar  avatar 逐梦 avatar  avatar Andy Hong avatar glory avatar liuqiqi avatar  avatar  avatar  avatar BestJex avatar  avatar hero1990 avatar Skycat avatar  avatar sword avatar  avatar 枯木 avatar  avatar  avatar lumix avatar cheegoday avatar zensezz avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar Tirion avatar 刘元盛 avatar  avatar  avatar YunWang avatar  avatar 张鸣 avatar  avatar lxw avatar Luo Guang avatar coderzzl avatar 谷谷小鱼 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar dongyang avatar jacliu avatar  avatar  avatar leekale avatar  avatar  avatar  avatar  avatar  avatar  avatar yh.w avatar  avatar HotStar avatar 喜水禾 avatar  avatar Kazyle avatar  avatar Alice Hill avatar  avatar  avatar  avatar cdlv avatar  avatar Jason Cool avatar  avatar lisee avatar michen avatar Pslipper avatar  avatar  avatar 无忧无虑的小胖子 avatar  avatar DanCooper avatar  avatar  avatar 道衍 avatar  avatar OpenByte avatar

Watchers

James Cloos avatar  avatar  avatar  avatar  avatar  avatar

poiexcel's Issues

如何分批获取多行,然后操作数据库

单行处理解决了内存溢出问题,但对数据库操作太频繁了,阿里easyexcel封装较好,但对poi版本有要求,局限于不能升级poi版本,不知道大家有没有更好的方案?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.