如何高效实现POI3 8大数据导出?

POI3.8版本大数据导出详解

POI3.8提供了一种高效的方式来处理Excel文件的读写操作,特别是在面对大数据量时,以下是对POI3.8版本中HSSFWorkbook、XSSFWorkbook和SXSSFWorkbook三种实现类的详细介绍及其优缺点对比。

如何高效实现POI3 8大数据导出?插图1

一、HSSFWorkbook

1、优点:不会报内存溢出(因为数据量还不到7w所以内存一般都够用,首先你得明确知道这种方式是将数据先读取到内存中,然后再操作)。

2、缺点:最多只能导出65535行,也就是导出的数据函数超过这个数据就会报错。

二、XSSFWorkbook

1、优点:这种形式的出现是为了突破HSSFWorkbook的65535行局限,针对Excel2007版本的1048576行,16384列,最多可以导出104w条数据。

2、缺点:虽然导出数据行数增加了好多倍,但是随之而来的内存溢出问题也成了噩梦,你所创建的book,Sheet,row,cell等在写入到Excel之前,都是存放在内存中的(这还没有算Excel的一些样式格式等等),可想而知,内存不溢出就有点不科学了!!!。

三、SXSSFWorkbook

如何高效实现POI3 8大数据导出?插图3

1、优点

不会一般不会出现内存溢出(它使用了硬盘来换取内存空间,当内存中数据达到一定程度这些数据会被持久化到硬盘中存储起来,而内存中存的都是最新的数据),并且支持大型Excel文件的创建(存储百万条数据绰绰有余)。

2、缺点

既然一部分数据持久化到了硬盘中,且不能被查看和访问那么就会导致,在同一时间点我们只能访问一定数量的数据,也就是内存中存储的数据。

sheet.clone()方法将不再支持,还是因为持久化的原因。

不再支持对公式的求值,还是因为持久化的原因,在硬盘中的数据没法读取到内存中进行计算。

在使用模板方式下载数据的时候,不能改动表头,还是因为持久化的问题,写到了硬盘里就不能改变了。

如何高效实现POI3 8大数据导出?插图5

使用建议

经过了解也知道了这三种Workbook的优点和缺点,那么具体使用哪种方式还是需要看情况的:

1、当我们经常导入导出的数据不超过7w的情况下,可以使用HSSFWorkbook或者XSSFWorkbook都行。

2、当数据量查过7w并且导出的Excel中不牵扯对Excel的样式,公式,格式等操作的情况下,推荐使用SXSSFWorkbook。

3、当数据量查过7w,并且我们需要操做Excel中的表头,样式,公式等,这时候我们可以使用XSSFWorkbook配合进行分批查询,分批写入Excel的方式来做。

根据具体的数据量和操作需求选择合适的Workbook实现类是关键,对于大数据量的导出操作,SXSSFWorkbook是一个不错的选择。

各位小伙伴们,我刚刚为大家分享了有关poi3 8大数据导出 _数据导出的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/86162.html

(0)
上一篇 2024年10月28日 03:39
下一篇 2024年10月28日 03:51

相关推荐