导出默认样式 token
ExcelStyleTokens 提供全局默认样式,配置前缀为 excel.export-style,可放在服务配置或 Nacos 公共配置中。未配置的值使用代码默认值,表头与正文可以分别设置字体、字号、加粗、文字颜色、背景颜色、行高、对齐、换行和缩进。
当前仅 /admin/user/export-async 接入。原同步用户导出和其他业务导出的样式不受影响,已有模板无需修改。
excel:
export-style:
header:
font-name: Microsoft YaHei
font-size: 11
bold: true
font-color: "#FFFFFF"
background-color: "#1F4E78"
row-height: 36
alignment: CENTER
wrap-text: true
indent: 0
body:
font-name: Microsoft YaHei
font-size: 11
bold: false
font-color: "#243247"
background-color: "#FFFFFF"
row-height: 26
alignment: LEFT
wrap-text: false
indent: 1
striped: true
alternate-row-color: "#F3F6FA"
border-style: THIN
border-color: "#DCE3EC"
column-width: 22
# 可选:按 Java 字段名覆盖业务默认列宽。[] 保留字段名大小写。
column-widths:
"[userId]": 24
"[username]": 20
"[deptName]": 28
"[roleNameList]": 30
freeze-header: true
auto-filter: true
show-grid-lines: false
颜色支持带或不带 # 的六位 RGB;YAML 中带 # 的颜色必须加引号。字号与行高单位为磅,列宽单位为 Excel 字符宽度(1~255)。配置绑定时校验颜色及尺寸。字体由打开 Excel 的电脑解析,可改为该电脑已安装的中文字体。边框样式与颜色应用于表头列分隔和正文水平分隔,正文不绘制完整网格。
列宽优先级:配置中的 column-widths > 业务默认列宽 > column-width。用户导出已按编号、手机、邮箱、部门、角色和日期等字段分别设置列宽,不扫描全部明细来计算列宽。长文本保持原值,默认正文不换行;需要多行显示时可同时增加 body.row-height 并开启 body.wrap-text。开启交替行底纹时,偶数数据行使用 alternate-row-color,其余数据行使用 body.background-color。
后续导出可显式注册处理器来复用样式(本次不接入其他接口):
builder.registerWriteHandler(new ExcelExportStyleHandler(excelConfig.getExportStyle()));
每次导出创建独立处理器,在提交任务时固定当前 token。处理器只支持 XLSX,缓存工作簿中的字体与单元格样式,条纹按实际行号计算,适用于分批流式写入。现有转换器、单元格类型、数据格式及导出列保持原样。固定格式模板应继续使用自身样式,不自动注册此处理器。