POI 和 EasyExcel 多Sheet页导出

        不同的sheet页,使用POI和EasyExcel生成的sheet页,合并导出。先用EasyExcel生成,再获取Workbook对象去用POI生成sheet页。

// 使用EasyExcel生成sheet页
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), Object.class).build();
...
...

// 获取EasyExcel的workbook对象,用于poi调用
Workbook workbook = excelWriter.writeContext().writeWorkbookHolder().getCachedWorkbook();

// 使用POI生成sheetye
Sheet sheet = workbook.createSheet(sheetName);
workbook.setSheetOrder(sheetName, 0);    // 设置sheet页位置
...
...

excelWriter.finish();    // 最后调用EasyExcel的finish()方法

        注意点:EasyExcel.write()方法默认生成SXSSFWorkbook对象,如果要进行简单绘图,调用绘图对象,则要使用XSSFWorkbook对象。

// 创建绘图对象,并转换为XSSFDrawing类型
XSSFDrawing drawing = (XSSFDrawing) sheet.createDrawingPatriarch();

// 创建直线 可以设置线段在单位格中间,长64为一格,宽32为一格
XSSFClientAnchor anchor = drawing.createAnchor(firstXOffset, firstYOffset, lastXOffset, lastYOffset, firstColumn, firstRow, lastColumn, lastRow);

        生成ExcelWriter对象时设置 inMemory(true) 参数,生成XSSFWorkbook对象。

ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream(), Object.class)
.inMemory(true)    // 设置后生成 XSSFWorkbook 对象
.build();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值