使用BigExcelWriter导出大文件,使用ExcelUtil.readBySax无法解析

文章讲述了在使用BigExcelWriter导出Excel文件时遇到的问题,即使用ExcelUtil.readBySax方法读取文件内容为空。问题出在读取Sheet的索引上,修正后通过读取-1位的Sheet成功获取到了文件内容。博客提供了错误代码和修正后的代码示例,强调了正确设置Sheet索引的重要性。
摘要由CSDN通过智能技术生成

直接上代码

// 设置响应类型
log.info("导出文件:-----Start-------------");
BigExcelWriter writer = ExcelUtil.getBigWriter();
try {
    //设置单元格样式
    CellStyle cellStyle = writer.getCellStyle();
    //创建标题字体
    Font font = writer.createFont();
    font.setFontName("宋体");
    cellStyle.setFont(font);
    //全局  宽15
    writer.setColumnWidth(-1, 15);
    writer.setColumnWidth(0, 20);
    //全局  高25
    writer.setRowHeight(-1, 25);
    //设置表头
    for (key, value in colMap) {
        writer.addHeaderAlias(key, value);
    }
  
    writer.write(infoList);

    response.setHeader("content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
    // 设置字符编码
    response.setHeader("characterEncoding", "utf-8");
    // 设置响应头信息
    response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8") + ".xlsx");
    writer.flush(response.getOutputStream(), true);
    response.end();
} catch (e) {
    log.error("写出文件异常:{}", e.message)
} finally {
    infoList.clear();
    writer.close()
    log.info("导出文件:-----End-------------");
}

 之前使用下面这段代码,解析文件后,文件内容为空,因为读取不到sheet的rid

    ExcelUtil.readBySax(ins, 0, rowHandler);
    ins.close();

 改正后为,读取-1位的sheet就可以获取到文件内容了。

    ExcelUtil.readBySax(ins, -1, rowHandler);
    ins.close();

参考博客原文博客:BigExcelWriter 写出的文件 ExcelUtil无法读取内容_excelutil.readbysax_H and G的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值