<poi.version>3.17</poi.version>
最近在写一个写入excel并且以流形式返回然后下载的操作,数据为7w多条的时候,一开始用弟弟中的弟弟HSSFWorkbook,嗯,结果可想而知,直接GG;我又换成了XSSFWorkbook,数据是能出来,但是非常慢,所以想着为何不用SXSSFWorkbook呢。
然后将poi版本升级到3.9
2结果
7w多条数据所用时长对比
SXSSFWorkbook所用时间21135毫秒
XSSFWorkbook所用时间 76331毫秒
从这个结果看来提升巨大
1背景poi版本 <poi.version>3.17</poi.version>最近在写一个写入excel并且以流形式返回然后下载的操作,数据为7w多条的时候,一开始用弟弟中的弟弟HSSFWorkbook,嗯,结果可想而知,直接GG;我又换成了XSSFWorkbook,数据是能出来,但是非常慢,所以想着为何不用SXSSFWorkbook呢。然后将poi版本升级到3.92结果7w多条数据所用时长对比SXSSFWorkbook所用时间21135毫秒XSSFWorkb
(5条消息) POI导出Excel的三种方式HSSFWorkbook ,XSSFWorkbook ,SXSSFWorkbook区别_CLG_CSDN的博客-CSDN博客
https://blog.csdn.net/CLG_CSDN/article/details/87162586
主要有两个地方耗时比较长,
一是获取数据耗时, 可以单独把取数据逻辑拿出来在命令行运行一下用时多少。
另一个就是autoSizeColumn, api描述说数据较大时耗时非常大, 建议在结果的时候调用一次.(ps:autoSizeColumn会遍历每一列的每一行数据获取最大长度)
我测试了10w条日志记录,38列,sheet1(6w)和sheet2(4w),把autoSizeColumn放
XSSFWorkbook(java.io.File file)
XSSFWorkbook(java.io.InputStream is)
XSSFWorkbook(OPCPackage pkg)
XSSFWorkbook(java.la...
这看起来像是一个Java代码中创建一个新的Excel文件的语句。它使用了Apache POI库中的XSSFWorkbook类来创建一个新的Excel工作簿对象。这个对象可以用来创建和编辑Excel文件中的工作表、单元格和其他元素。以下是可能类似的示例代码:
```java
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class CreateExcel {
public static void main(String[] args) throws IOException {
// Create a new workbook
XSSFWorkbook workbook = new XSSFWorkbook();
// Create a blank sheet
workbook.createSheet("Sheet1");
// Write the workbook to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
workbook.write(fileOut);
fileOut.close();
// Close the workbook
workbook.close();
这个示例代码创建了一个新的Excel工作簿,并在其中创建了一个名为“Sheet1”的空白工作表。然后,它将工作簿写入名为“workbook.xlsx”的文件中,并关闭工作簿。