导出复杂的表格需要借助TableBuilder先生成Table,再将Table导出到excel中
最后更新:2025-07-24 11:08:52
|
状态:未完成
TableBuilder builder = TableBuilder.init()
.setDatas(set) //设置数据源
.setFields( //需要导出的列
"{num}(EMPLOYEE_NM)" //{num}表示序号,(DEPARTMENT_NM)表示根据哪一列计算序号,这里部门名称需要分组合并,所以num不是按行计算
,"DEPARTMENT_NM"
,"EMPLOYEE_NM"
,"YM"
,"BASE_PRICE")
.addUnion( //需要合并的列
"DEPARTMENT_NM" //如果部门名称相同则合并
,"EMPLOYEE_NM(DEPARTMENT_NM)"
,"YM(DEPARTMENT_NM)" //如果月份相同则合并,前提是部门已经合并
)
.setReplaceEmpty("/") //如果值为空则以/代替
.addIgnoreUnionValue("/") //不参与合并的值
.setCellBorder(true) //设置默认边框
.setMergeCellHorizontalAlign("center") //设置合并的列 水平对齐方式
.setMergeCellVerticalAlign("top") //设置合并的列 垂直对齐方式
.setEmptyCellHorizontalAlign("center") //设置空单元格 水平对齐方式(为空时有可能需要替换成其他值)
.setEmptyCellVerticalAlign("top") //设置空单元格 垂直对齐方式
.setHorizontalAlign("YM","center") //设置月份列 水平对齐方式
.setVerticalAlign("middle") //设置所有数据单元格 垂直对齐方式
.setLineHeight("50px") //设置数据区域行高
.setWidth("YM","200px") //设置月份列 宽度
;
Table table = builder.build();
File file = new File(dir, "export_table.xlsx");
ExcelUtil.export(file, table);