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

57 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 导出默认样式 token
`ExcelStyleTokens` 提供全局默认样式,配置前缀为 `excel.export-style`,可放在服务配置或 Nacos 公共配置中。未配置的值使用代码默认值,表头与正文可以分别设置字体、字号、加粗、文字颜色、背景颜色、行高、对齐、换行和缩进。
当前仅 `/admin/user/export-async` 接入。原同步用户导出和其他业务导出的样式不受影响,已有模板无需修改。
```yaml
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`。
后续导出可显式注册处理器来复用样式(本次不接入其他接口):
```java
builder.registerWriteHandler(new ExcelExportStyleHandler(excelConfig.getExportStyle()));
```
每次导出创建独立处理器,在提交任务时固定当前 token。处理器只支持 XLSX,缓存工作簿中的字体与单元格样式,条纹按实际行号计算,适用于分批流式写入。现有转换器、单元格类型、数据格式及导出列保持原样。固定格式模板应继续使用自身样式,不自动注册此处理器。