Skip to content

类 Excel 打印报表 ​

打印报表面向中国式复杂报表与单据(对账单、出入库单、工资条、统计表等):用类 Excel 的单元格网格设计模板,在单元格里填表达式绑定数据集字段,取数后自动分页、分组、汇总,并支持套打、浏览器打印、Excel / PDF / Word 导出。在「报表中心 → 打印报表」(/report/print)管理。

设计流程 ​

  1. 在列表「新增」打印报表,填写名称、绑定数据集。
  2. 点「设计」进入 Univer 单元格设计器(与 Excel 操作一致:合并单元格、字体、对齐、边框、行高列宽)。
  3. 在单元格里填入表达式绑定字段(见下文),从右侧「字段」面板点击可快速插入。
  4. 配置「页面设置」(纸张/方向/页边距/页眉页脚/套打底图/重复表头/强制分页/分组字段/组头组尾/页小计/总计)。
  5. 需要多 Sheet 时可新增工作表,分别维护网格与页面配置。
  6. 「预览」查看取数填充后的效果,「保存」。
  7. 复杂模板可配置多个数据集绑定、重复块、交叉表和子报表;运行时仍合并为同一安全渲染结果。

单元格表达式语法 ​

语法含义用途
${field}明细字段,纵向扩展同一行的多个 ${} 组成「明细带」,按数据行数重复生成多行
#{field}标量字段,取首行值表头、单据信息区(如制单人、日期)
${param}参数命中已声明参数时按参数解析
${SUM(field)}聚合还支持 COUNT / AVG / MAX / MIN,标量、不扩展
${GROUP_SUM(field)}组小计还支持 GROUP_COUNT / GROUP_AVG / GROUP_MAX / GROUP_MIN
${PAGE_SUM(field)}页小计还支持 PAGE_COUNT / PAGE_AVG / PAGE_MAX / PAGE_MIN
${QRCODE(field)}二维码单元格HTML / Excel / PDF / Word 均按图形输出
${CODE128(field)}Code128 条码单元格适合单号、箱码、库位码;BARCODE(...) 为同义写法
普通文本字面量支持「前缀${field}后缀」混合文本

除表达式外,单元格还可声明为图片单元格(kind: image,配置图片 URL、宽高与填充方式 fit,套打 logo / 签章图常用)。

示例 ​

ABC
1部门用户统计表(合并居中)
2部门人数占比
3${name}${value}${ratio}
4合计${SUM(value)}

第 3 行是「明细带」,取数后会按数据行数自动展开为多行;第 4 行的 ${SUM(value)} 自动汇总全部明细。带内的合并单元格会随每行克隆,非带区合并整体下移。横向标签类报表可把明细方向改为横向扩展列。

参数 ​

打印报表可声明参数(同数据集参数),渲染时注入到 ${param} 占位与页眉页脚。预览、列表导出、设计器导出前都会先弹出统一参数表单,按 string / number / boolean / date 自动渲染控件并做必填校验。

页面设置与套打 ​

项说明
纸张A4 / A3 / A5 / Letter
方向纵向 / 横向
页边距上/右/下/左(mm)
页眉 / 页脚文本,支持 ${param} 与 {page} {pages} {date} 占位
重复表头指定模板行范围,每页自动重复
分页支持固定 rowsPerPage、按纸张高度自动分页、指定 pageBreaks 强制分页
分组支持 groupByFields、组头、组尾 / 组小计、页小计、总计
套打底图背景图 URL,叠加在表格下层,用于在预印单据/票据上精确套打

多数据集、交叉表与子报表 ​

  • content.datasetBindings[] 用唯一 key 绑定数据集,可将模板参数映射到目标参数,并配置 rowLimit;parentKey/parentField/childField 表达父子数据关系。
  • Sheet 可用 datasetKey 设置默认绑定,单元格也可覆盖;repeatBlocks[] 允许同一 Sheet 由不同数据集展开多个不重叠模板带。
  • detailDirection: 'crosstab' 使用 rowFields、columnFields、valueFields[{ field, aggregate }] 生成交叉表,可显示行/列总计。服务端限制动态列数(256)、总单元格数(10 万)和结果字节数(8MB),超预算直接失败,不截断成错误报表。
  • kind: 'subreport' 单元格通过 templateId、可选 datasetKey 和 paramBindings 嵌入另一个模板。服务端限制递归深度(最多 3 层)并检测循环引用;子报表仍执行目标模板和数据集权限校验。

实体模板(审批单等业务单据) ​

模板的 sourceType 区分数据来源:dataset(默认,绑定报表数据集取数)与 entity(渲染时由业务实体所属域注入数据集)。 实体模板声明 entityKind(当前支持 workflow_instance 审批单)与可选的设计参照 entityRefId(流程定义 ID,决定表单字段目录;为空为通用模板), 并在 content.entityDatasets[] 登记渲染时会注入的数据集键(如 instance / form / tasks),单元格与重复块即可用 datasetKey 引用这些数据集。

  • 实体模板不走数据集取数与报表资源 ACL:能访问实体(如能看审批实例详情)即能用其绑定的模板打印,访问控制由实体所属域负责。
  • 流程定义在「更多设置」绑定实体模板(printTemplateId);未绑定时服务端按表单快照自动生成版式,见审批单打印。

设计器中的实体模式:

  • 新建模板时选择数据来源「审批单(流程实例)」,设计器顶栏用「参照流程」替代数据集选择——参照流程决定「表单字段」目录,留空为只含固定数据集(审批单 / 审批记录 / 抄送 / 沟通 / 附件)的通用模板。
  • 「从流程表单生成」按参照流程的表单快照生成完整审批单版式(基本信息、表单栅格 / 分组 / 明细重复块 / 签名、审批记录、抄送、沟通、页脚)作为定制起点;已有设计时需确认替换。
  • 「字段」面板按数据集分组列出字段:主数据集字段直接插入 ${key};其余数据集插入时给单元格标上数据集键,多行数据集(明细 / 审批记录等)需放在对应重复块内;签名等图片字段插入为图片单元格。
  • 「预览」保存后弹出样例审批单选择,选一条真实实例后走与业务打印完全相同的渲染链路生成 PDF(设计器预览总是实时渲染,不返回归档件)。
  • 主数据集提供 verifyUrl(验真页地址),自动版式在标题区右上角以 ${QRCODE(verifyUrl)} 输出验真二维码,定制模板可自行放置。
  • 明细数据集的数值子列同时提供原始数值(<key>,供 ${SUM(key)} 等聚合)与格式化文本(<key>_text,千分位 / 精度 / 单位);勾选「明细汇总」的列在主数据集给出已格式化合计 <明细key>_<子字段key>_total。
  • 页眉 / 页脚带支持 ${printerName} / ${printedAt}(打印人 / 打印时间,随每页重复)以及 {page} / {pages} / {date}。
  • 列表页对实体模板隐藏数据集预览 / 导出动作(无数据集可取数)。

预览与打印 ​

  • 预览:调用渲染接口取数填充,按真实 pages[] 逐页还原 HTML(页眉、页脚、底图、页码、重复表头、页小计都会生效)。
  • 打印:预览页「打印」按钮调用浏览器打印,@media print 仅打印报表区域,可直接对准预印纸张。

Excel / PDF / Word 导出 ​

打印报表可导出为 Excel(.xlsx)、PDF 与 Word(.docx),接入项目统一导出中心(导出实体 report.print)。明细行数 ≤ 800 时同步直出,超过则按导出中心容量策略转异步任务 + 下载中心取件。

  • Excel:服务端用 ExcelJS 还原多 Sheet 网格、合并、字体/对齐/底纹/边框、行高列宽、公式、数字格式、图片/二维码/条码、纸张与页面设置。
  • PDF:服务端用 PDFKit 按真实分页结果绘制文本表格、页眉页脚、页码、边框,并对合并单元格做合理降级。中文字形来自随包内置的 Noto Sans SC(packages/server/assets/fonts,SIL OFL):发布包与镜像默认携带约 2.5MB 的子集(GB 2312 ∪ 通用规范汉字表 + 常用符号),繁体 / 生僻字多的场景可在自行打包或构建镜像时选全量字体,企业自有字体以 REPORT_PDF_FONT_PATH 指向单个 TTF / OTF 文件覆盖;文本含字体没有字形的字符时导出日志会列出缺字,见部署说明 → PDF 字体。加粗以细描边模拟,不需要再内置 Bold 字重。
  • Word:服务端生成原生 .docx,按渲染后的 Sheet/分页组织表格、页眉页脚、图片、二维码/条码和子报表;不是把 HTML 改扩展名。

与仪表盘的区别 ​

仪表盘 / 大屏打印报表
形态图表 + 指标,屏幕浏览单元格表格,打印/单据
布局拖拽组件 / 自由画布Excel 单元格网格
典型场景看板、监控、大屏对账单、统计表、票据套打
导出PNG / Excel(数据集)Excel / PDF / Word / 打印

内置示例「部门用户统计表」演示了表头 + 明细纵向扩展 + 合计行(${SUM}),可直接打开参考。

权限 ​

操作权限码
查看 / 预览 / 渲染 / 导出report:print:list
新增report:print:create
设计 / 编辑report:print:update
删除report:print:delete

列表「权限与转移」可直达资源治理管理该模板的 ACL 与所有权。

Built with VitePress for local documentation preview.