EasyExcel 是阿里巴巴的一个基于Java的简单方便省内存的读写Excel开源项目。
常用方法,见官方文档:https://easyexcel.opensource.alibaba.com/docs/current/
下面介绍,Alibaba EasyExcel:合并列、行 设置,版本 2.2.6+
合并列、行,使用 OnceAbsoluteMergeStrategy 非常方便 。
一、使用 直接 new OnceAbsoluteMergeStrategy 对象:
new OnceAbsoluteMergeStrategy(1,2,0,0) 表示合并 0 列的 1和2两行,
这里的行列,均从 0 开始。
下面是 其 构造函数:
public OnceAbsoluteMergeStrategy(int firstRowIndex, int lastRowIndex, int firstColumnIndex, int lastColumnIndex)
其中前两个参数是限制行,后两个参数是限制列,均包含在内。
二、通过 registerWriteHandler 方法注册进去即可:
1. 使用 总的 ExcelWriterBuilder 对象,或者 每个 Sheet 的 ExcelWriterSheetBuilder 对象,均可注册。
2. 在使用 总的 ExcelWriterBuilder 对象,注册很多的动态 WriteHandler 对象时,链式写法反而不方便,使用List反而操作方便些(当然如果都是些固定的WriteHandler,就无所谓了)
List writeHandlerList = Lists.newArrayList();
writeHandlerList.add(new ColumnWidthStyleStrategy()); // 列宽
writeHandlerList.add(new RowHeightStyleStrategy()); // 行高
writeHandlerList.add(new OnceAbsoluteMergeStrategy(1,2,0,0)); // 合并行
ExcelWriterBuilder excelWriterBuilder = EasyExcel.write(response.getOutputStream());
for (WriteHandler writeHandler : writeHandlerList) {
excelWriterBuilder.registerWriteHandler(writeHandler);
}
ExcelWriter excelWriter = excelWriterBuilder.build();
三、如果有多地方合并,可以注册N个 OnceAbsoluteMergeStrategy 对象:
excelWriterBuilder.registerWriteHandler(new OnceAbsoluteMergeStrategy(1,2,0,0))
.registerWriteHandler(new OnceAbsoluteMergeStrategy(2,2,3,4))
.registerWriteHandler(new OnceAbsoluteMergeStrategy(5,7,1,3))
.registerWriteHandler(new OnceAbsoluteMergeStrategy(4,4,0,head.size()));
留言与评论(共有 0 条评论) “” |