类 Excel 打印报表
打印报表面向中国式复杂报表与单据(对账单、出入库单、工资条、统计表等):用类 Excel 的单元格网格设计模板,在单元格里填表达式绑定数据集字段,取数后自动纵向扩展明细、计算合计,并支持套打、浏览器打印与 Excel 导出。在「报表中心 → 打印报表」(/report/print)管理。
设计流程
- 在列表「新增」打印报表,填写名称、绑定数据集。
- 点「设计」进入 Univer 单元格设计器(与 Excel 操作一致:合并单元格、字体、对齐、边框、行高列宽)。
- 在单元格里填入表达式绑定字段(见下文),从右侧「字段」面板点击可快速插入。
- 配置「页面设置」(纸张/方向/页边距/页眉页脚/套打底图)。
- 「预览」查看取数填充后的效果,「保存」。
单元格表达式语法
| 语法 | 含义 | 用途 |
|---|---|---|
${field} | 明细字段,纵向扩展 | 同一行的多个 ${} 组成「明细带」,按数据行数重复生成多行 |
#{field} | 标量字段,取首行值 | 表头、单据信息区(如制单人、日期) |
${param} | 参数 | 命中已声明参数时按参数解析 |
${SUM(field)} | 聚合 | 还支持 COUNT / AVG / MAX / MIN,标量、不扩展 |
| 普通文本 | 字面量 | 支持「前缀${field}后缀」混合文本 |
示例
| A | B | C | |
|---|---|---|---|
| 1 | 部门用户统计表(合并居中) | ||
| 2 | 部门 | 人数 | 占比 |
| 3 | ${name} | ${value} | ${ratio} |
| 4 | 合计 | ${SUM(value)} |
第 3 行是「明细带」,取数后会按数据行数自动展开为多行;第 4 行的 ${SUM(value)} 自动汇总全部明细。带内的合并单元格会随每行克隆,非带区合并整体下移。
参数
打印报表可声明参数(同数据集参数),渲染时注入到 ${param} 占位与页眉页脚。预览/打印/导出时可传入参数值。
页面设置与套打
| 项 | 说明 |
|---|---|
| 纸张 | A4 / A3 / A5 / Letter |
| 方向 | 纵向 / 横向 |
| 页边距 | 上/右/下/左(mm) |
| 页眉 / 页脚 | 文本,支持 ${param} 与 {page} {pages} {date} 占位 |
| 套打底图 | 背景图 URL,叠加在表格下层,用于在预印单据/票据上精确套打 |
预览与打印
- 预览:调用渲染接口取数填充,按纸张尺寸 + 页边距 + 套打底图还原为可打印的 HTML 表格(合并、样式、行高列宽一致)。
- 打印:预览页「打印」按钮调用浏览器打印,
@media print仅打印报表区域,套打底图随打印输出,可直接对准预印纸张。
Excel 导出
打印报表可导出为 Excel(.xlsx),接入项目统一导出中心。导出由服务端用 ExcelJS 还原网格:单元格值、合并、字体/对齐/底纹/边框、行高列宽、纸张与页面设置都会保留,开箱即可二次编辑或归档。
与仪表盘的区别
| 仪表盘 / 大屏 | 打印报表 | |
|---|---|---|
| 形态 | 图表 + 指标,屏幕浏览 | 单元格表格,打印/单据 |
| 布局 | 拖拽组件 / 自由画布 | Excel 单元格网格 |
| 典型场景 | 看板、监控、大屏 | 对账单、统计表、票据套打 |
| 导出 | PNG / Excel(数据集) | Excel(保留网格样式) / 打印 |
内置示例「部门用户统计表」演示了表头 + 明细纵向扩展 + 合计行(
${SUM}),可直接打开参考。
权限
| 操作 | 权限码 |
|---|---|
| 查看 / 预览 / 渲染 / 导出 | report:print:list |
| 新增 | report:print:create |
| 设计 / 编辑 | report:print:update |
| 删除 | report:print:delete |