SXSSF操作excel

简介: SXSSF操作excel
优点:可以写非常大的数据量.如100万条甚至更多,写速度非常快,占用更少的
注意

1 过程中会产生临时文件,需要清理临时文件

2 默认由100条记录被保存在内存中,如果超过这数量,则最前面的数据被写入临时文件,当然缓存数量也可以自定义

3 如果自定义内存中数据的数量,可以使用new SXSSFWorkbook(数量)


SXSSF循环插入100000条数据

package com.wyh.Test;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.Test;
import java.io.FileOutputStream;
/**
 * @program: JavaExecl
 * @description: 大数据量写03版本
 * @author: 魏一鹤
 * @createDate: 2021-12-14 23:31
 **/
public class BigDateExcelWrite07Super {
//全局路径,供我们操作使用方便
    static String path = "D:\\Tools\\JavaWorkSpace\\JavaExecl\\";
    @Test
public void BigDateExcelWrite07Super() throws Exception {
//开始时间 用于计算时间差
        long beginTime = System.currentTimeMillis();
//创建工作簿 07版本的使用XSSF
        Workbook workbook = new SXSSFWorkbook();
//创建工作表 这里就不给它命令了 按照默认的来
        Sheet sheet = workbook.createSheet();
//写入数据 循环插入65536行数据,03版的HSSF最多只能插入65536行
        for (int rowNum = 0; rowNum < 100000; rowNum++) {
//循环创建行
            Row row = sheet.createRow(rowNum);
for(int cellNum=0;cellNum<10;cellNum++){
//循环插入列
                Cell cell = row.createCell(cellNum);
//循环设置值
                cell.setCellValue(cellNum);
            }
        }
        System.out.println("生成excel表完毕");
//037版本的后缀是xlsx
        //开启文件流
        FileOutputStream fileOutputStream = new FileOutputStream(path + "BigDateExcelWrite07Super.xlsx");
//开始写excel
        workbook.write(fileOutputStream);
//关闭流
        fileOutputStream.close();
//由于SXSSF会产生临时文件,这里我们需要清除下临时文件
        ((SXSSFWorkbook) workbook).dispose();
//结束时间
        long endTime = System.currentTimeMillis();
//输出花费的时间
        System.out.println("花费的时间:"+(double)(endTime - beginTime)/1000);
    }
}

运行发现,excel也正常生成了,但是它(SXSSF)的速度比XSSF快的多

查看我们的super


image.png

这就是我们的临时文件,随着我们把文件的关闭,临时文件也会随之消失


image.png

目录
相关文章
|
6月前
|
Java Apache
EasyPOI操作Excel从零入门
我们不造轮子,只是轮子的搬运工。(其实最好是造轮子,造比别人好的轮子)开发中经常会遇到excel的处理,导入导出解析等等,java中比较流行的用poi,但是每次都要写大段工具类来搞定这事儿,此处推荐一个别人造好的轮子,EasyPOI封装了Apache的POI技术,实现了基本的Excel导入、导出从此不再为Excel操作头疼~
424 2
EasyPOI操作Excel从零入门
|
6月前
|
存储 数据处理 索引
Python操作Excel常用方法汇总
Python操作Excel常用方法汇总
262 0
|
6月前
|
API
Poi 中文API文档 「40种操作 Excel文件的姿势」
Poi 中文API文档 「40种操作 Excel文件的姿势」
310 0
|
4月前
|
Java BI 数据处理
如何在Java中实现Excel操作
如何在Java中实现Excel操作
|
5月前
|
Java 数据库 数据安全/隐私保护
Java操作Excel文件导入导出【内含有 jxl.jar 】
Java操作Excel文件导入导出【内含有 jxl.jar 】
82 0
Excel如何使用VBA操作引用其它工作簿中的单元格
Excel引用其它工作簿中的单元格的值及使用VBA操作
|
5月前
|
Python
【干货】python xlwt写入excel操作
【干货】python xlwt写入excel操作
|
5月前
|
图形学
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
186 0
|
5月前
|
分布式计算 大数据 数据处理
MaxCompute操作报错合集之在本地用tunnel命令上传excel表格到mc遇到报错: tunnel upload C:\Users***\Desktop\a.xlsx mc里的非分区表名 -s false;该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
6月前
|
数据挖掘 数据库连接 数据处理
精通Excel意味着熟练掌握基础及进阶操作
精通Excel意味着熟练掌握基础及进阶操作,如数据透视表、VBA编程和自定义公式。提升效率的技巧包括善用快捷键、自动化重复任务、巧用公式与函数(如SUM和VLOOKUP)、利用数据透视表分析数据、设置条件格式、建立数据库连接、编写自定义函数、创建数据图表、使用模板和进行分组汇总。这些方法能有效提升数据分析和处理能力,优化工作效率。
192 2

热门文章

最新文章

下一篇
无影云桌面