大量数据导入EXCEL的方法

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大量数据导入EXCEL的方法

一. 导入生成Excel

原始的做法:

将数据加载到内存中,导入Excel,此方法的弊端:

1.大量数据加载到内存中,使机器变得缓慢

2.大量数据在导入Excel时形成大量cell对象产生OOM

在使用TOMCAT的情况下,JVM最高只能支持到2G内存,则会发生内存溢出的情况。此时的内存开销主要是两部分,一部分是大量数据加载到内存,另一部分是写入一个EXCEL 时形成大量cell对象的开销。由于JVM的GC机制是不能强制回收的.

采用的方案是:将大量要导出的数据放入临时表分批次形成多个Excel文件后合并.说明:1.大量要导出的数据放入临时表

大量数据有可能是在海量数据表里通过条件查询出来的,这样可以有效避免多次在海量数据中查询,提高了查询效率

2.分批次形成多个Excel

比形成一个Excel的多个sheet好,因为多个sheet形式需要将整个Excel加载到内存中,那么sheet越多,Excel越大.改多个SHEET页为多个EXCEL。通过多次生成,可以在后面EXCEL生成所需要的内存不足时,有效回收前面生成EXCEL时占用的内存。

3.将多个Excel合并

二. Excel导出入库

1.excel文件上传至服务器

2.采用eventusermodel方式读取excel数据,分块读取数据并批量入临时表

3.利用存储过程或其他纯sql语句来验证临时表(Temp1)中的数据

4.将验证失败数据放入存储至校验失败的临时表中(Temp2)

5.将临时表(Temp1)中的数据插入库表

相关文档
最新文档