Files
pj_service_cloud/pjcloud-common/pjcloud-common-excel
2026-10-21 19:39:59 +08:00
..
111
2026-10-21 19:39:59 +08:00
111
2026-10-21 19:39:59 +08:00

导出默认样式 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,缓存工作簿中的字体与单元格样式,条纹按实际行号计算,适用于分批流式写入。现有转换器、单元格类型、数据格式及导出列保持原样。固定格式模板应继续使用自身样式,不自动注册此处理器。