Java中优化大量数据导出到Excel的内存消耗(三):边读边写

优化大量数据导出到Excel的内存消耗(二):如果数据超出Excel单表上限,则进行分表_txt导入excel超出最大行如何自动分表-优快云博客

数据导出进行边读边写excel方式导出

DataSource dataSource = dataSourceService.getByDsName(requestObj.getString("dsName"));
QuerySqlVO querySqlVO = modelNativeService.buildQuerySQL(requestObj,dataSource);
                     
this.queryDataAndWriteExcel(wb,header,querySqlVO,impRelation.getLabel(),currentSheetNum);
/**
 * 查询数据并写入到Excel文件中。
 *
 * @param wb         已经存在的SXSSFWorkbook对象,用于写入数据。
 * @param header     表头信息,键为字段名,值为表头显示的文字。
 * @param querySqlVO 包含查询SQL语句、参数和数据源信息的对象。
 * @param label      用于标识Sheet的标签前缀。
 * @param sheetNum   当前Sheet的编号。
 * @return 写入数据后的SXSSFWorkbook对象。
 * @throws SQLException 如果数据库操作出现异常。
 */
public SXSSFWorkbook queryDataAndWriteExcel(SXSSFWorkbook wb, Map<String, String> header,
                                            QuerySqlVO querySqlVO, String label, int sheetNum) throws SQLException {
    // 创建一个新的Sheet,并设置其名称
    Sheet sheet = wb.createSheet(label + "_" + sheetNum);

    // 初始化行号
    int rowNum = 0;
    // 创建第一行用于写入表头
    Row row &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值