System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种大数据量Excel读取方法技术_技高网

一种大数据量Excel读取方法技术

技术编号:40466511 阅读:14 留言:0更新日期:2024-02-22 23:20
本发明专利技术涉及大数据读取技术领域,具体为一种大数据量Excel读取方法,包括以下步骤:根据文件拓展名.xls和.xlsx实现Excel2003大数据量文件读取;根据文件拓展名.xls和.xlsx实现Excel2007大数据量文件读取;有益效果为:本发明专利技术提出的大数据量Excel读取方法,利用SAX事件驱动模式解决了Excel数据结构复杂、数据量大等情况导致的低效率和高资源消耗问题,在降低内存消耗并且提高读取效率的同时完成大数据量的Excel内容读取。

【技术实现步骤摘要】

本专利技术涉及大数据读取,具体为一种大数据量excel读取方法。


技术介绍

1、poi读取excel有两种模式,一种是用户模式,一种是sax事件驱动模式,将xlsx格式的文档转换成csv格式后进行读取。

2、现有技术中,用户模式api接口丰富,使用poi的api可以轻松读取excel,但是这种模式需要消耗的内存很大,适用于数据量较少的情况下使用,在遇到数据量较大的sheet、大数据网格、假空行、公式等问题时,就容易出现内存溢出的情况。


技术实现思路

1、本专利技术的目的在于提供一种大数据量excel读取方法,以解决上述
技术介绍
中提出的excel数据结构复杂、数据量大等情况导致的低效率和高资源消耗等问题。

2、为实现上述目的,本专利技术提供如下技术方案:一种大数据量excel读取方法,所述方法包括以下步骤:

3、根据文件拓展名.xls和.xlsx实现excel2003大数据量文件读取;

4、根据文件拓展名.xls和.xlsx实现excel2007大数据量文件读取。

5、优选的,使用poi事件模式解析excel2003文件,将excel2003文件转化为poi中poifsfilesystem对象。

6、优选的,将excel2003文件转化为poi中poifsfilesystem对象的具体操作步骤包括:

7、实现接口hssflistener,实现自己的监听器listener,通过record.sid为特定的record设置监听listener,hssfrequest中有一个map,用于存储所有特定record的监听器;

8、根据目标文件的文件路径获取到文件的字节输入流fileinputstream-in;

9、根据字节输入流fin创建poisfilesystem实例对象poifs,根据poifs获取到根目录条目directorynode–rootentry。根目录rootentry根据entry实体名workbook获取对应的entry;

10、第二个目录条目名称是workbook,找到第二目录条目,根据对应的流创建一个输入流documentinputstream;

11、解析输入流documentinputstream,根据excelxls文档格式解析为一个个记录record;

12、创建一个自己的监听器类workbook,listener可以注册到hssfrequest中用于监听特定的record,hssfeventfactory传入记录了一个record所有监听器的hssfrequest实例和包含workbook的poifs文件系统之后,将一个文件处理为基本的record事件。

13、优选的,使用poi事件模式解析excelxlsx文档时,poi根据xlsx文档的路径path获取到文件,使用java.util.zip.zipfile打开文件,从zip中获取到[content_types].xml,[content_types].xml文档记录了整个excel文档中所有的xml,解析[content_types].xml,记录解析出的excel各个xml名称:arraylist,excel解析成zippackage实例对象。

14、优选的,excel解析成zippackage实例对象的具体操作步骤包括:

15、根据目标excel2007文件路径path获取到文件流fileinputstream-fls,支持直接使用文件路径path读取;

16、将文件流fls解析成opcpackage实例对象-pkg;

17、使用opcpackage实例对象pkg创建xssfreader实例对象-reader,获取excel文件中所有sheet页数据流信息;

18、进行sax解析,实现自己的处理类;

19、创建xmlreader实例对象-xmlreader;

20、设置内容处理器defaulthander-hander;

21、进行处理。

22、与现有技术相比,本专利技术的有益效果是:

23、本专利技术提出的大数据量excel读取方法,利用sax事件驱动模式解决了excel数据结构复杂、数据量大等情况导致的低效率和高资源消耗问题,在降低内存消耗并且提高读取效率的同时完成大数据量的excel内容读取。

本文档来自技高网...

【技术保护点】

1.一种大数据量Excel读取方法,其特征在于:所述方法包括以下步骤:

2.根据权利要求1所述的一种大数据量Excel读取方法,其特征在于:使用POI事件模式解析Excel2003文件,将Excel2003文件转化为POI中POIFSFileSystem对象。

3.根据权利要求2所述的一种大数据量Excel读取方法,其特征在于:将Excel2003文件转化为POI中POIFSFileSystem对象的具体操作步骤包括:

4.根据权利要求1所述的一种大数据量Excel读取方法,其特征在于:使用POI事件模式解析ExcelXLSX文档时,POI根据xlsx文档的路径path获取到文件,使用java.util.zip.ZipFile打开文件,从zip中获取到[Content_Types].xml,[Content_Types].xml文档记录了整个Excel文档中所有的xml,解析[Content_Types].xml,记录解析出的Excel各个xml名称:ArrayList,Excel解析成ZipPackage实例对象。

5.根据权利要求4所述的一种大数据量Excel读取方法,其特征在于:Excel解析成ZipPackage实例对象的具体操作步骤包括:

...

【技术特征摘要】

1.一种大数据量excel读取方法,其特征在于:所述方法包括以下步骤:

2.根据权利要求1所述的一种大数据量excel读取方法,其特征在于:使用poi事件模式解析excel2003文件,将excel2003文件转化为poi中poifsfilesystem对象。

3.根据权利要求2所述的一种大数据量excel读取方法,其特征在于:将excel2003文件转化为poi中poifsfilesystem对象的具体操作步骤包括:

4.根据权利要求1所述的一种大数据量excel读取方法,其特征在于:使用poi事件模式解析exc...

【专利技术属性】
技术研发人员:隋岩松高鹏超单静静毕云鹏黄珏
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1