Files
pj_service_cloud/pjcloud-common/pjcloud-common-excel/README.md
T
dzc bbde6cc87f fix:图片访问
fix:权限修改
2026-10-29 14:28:38 +08:00

3.3 KiB
Raw Blame History

导出默认样式 token

ExcelStyleTokens 提供全局默认样式,配置前缀为 excel.export-style,可放在服务配置或 Nacos 公共配置中。未配置的值使用代码默认值,表头与正文可以分别设置字体、字号、加粗、文字颜色、背景颜色、行高、对齐、换行和缩进。

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

日志导出沿用原有列,支持日志类型、创建时间范围、应用标识及原接口的日志编号筛选。每批按编号倒序读取 200 条,仅首批统计总数,后续使用编号游标;新增的更大编号不会挤偏后续批次。旧 GET 接口仍直接返回附件,新 POST /admin/log/export-async 返回任务信息,使用 /admin/async-task/progress 和命名空间 admin:export:log 查询进度。两个接口均要求 sys_log_export 权限,超出单工作表行数限制时提示缩小筛选范围。