报表管理
把上级常要的 Excel 表样存进系统,列对应模块里的字段,以后要报表时选模板一键生成,不用再照着表样一格格抄数据。
1. 谁来管理模板、谁能生成报表
「报表管理」这个菜单页面仅管理员可见(路由标了 adminOnly),管理员在这里能看到全系统所有模块的模板列表,可以给任意模块新建、删除模板。
普通用户不用进「报表管理」页——在自己有权限的模块数据页里,右上角「更多」下拉菜单有个「生成报表」,只要对该模块有「导出」权限(module:模块ID:export)就能看到,选一个管理员已经建好的模板直接导出。只有「查看」权限、没有「导出」权限的账号看不到这个入口。
模块数据页的「生成报表」弹窗里,管理员账号会额外看到「新建模板」「删除此模板」两个按钮——不一定非要专门跑一趟「报表管理」页。
2. 新建模板
- 进「报表管理」页,顶部选一个模块,点「新建模板」。
- 选择表样文件:就是上级发来的空表(带标题和表头的那种),.xlsx/.xls 格式,最大 10MB,数据行有没有内容都可以。
- 多 sheet 表样要选「数据 sheet」:系统会按前 20 行非空单元格数量自动挑最像数据表的那一张作为默认,猜错了可以手动改选;只有选中的这一张会被填数据。
- 确认「表头在第几行」:系统自动猜前 10 行里非空单元格最多的那一行,下方预览表格里会高亮显示,猜错了可以用数字输入框改。
- 核对列映射:每一列可以选「字段:XX」(绑定模块里的某个字段,系统已按字段名自动匹配,包括常见叫法的归一化,比如表样写「身份证」也能自动配到模块里的「身份证号」字段)、「自动序号(1、2、3…)」、「固定值」(填一段固定文字)或「留空」。
- 填模板名称(默认取文件名),点「保存模板」。
模板名称最多 50 字,不能包含 < > : " / \ | ? * 这些 Windows 文件名保留字符——保存时会被系统拒绝。
3. 生成报表
两个入口,效果一样,区别是能不能选数据范围:
| 入口 | 数据范围 |
|---|---|
| 模块数据页 →「生成报表」 | 可选「当前筛选结果(N 条)」或「全部数据」 |
| 「报表管理」页 → 模板行「生成(全部数据)」 | 固定导出全部数据,不带筛选 |
生成规则:保留表样原有的标题、表头和合并单元格样式;先清空表头以下原来的示例内容,再从表头下一行开始,按你配的列映射把记录逐行填进去。日期字段会写成 Excel 的真实日期格式(可以在 Excel 里排序、筛选,不是纯文本);派生字段(年龄、党龄)按当前日期实时算出后填入;「是否」字段填「是」/「否」;下拉多选的值用「、」拼接成一串。生成的文件名是「模板名-日期.xlsx」,自动下载到本地。
系统只负责把数据填进对应的单元格,表样本身的字体、边框、合并单元格样式会保留,但特别复杂的样式(比如跨页合并、条件格式)生成后可能需要在 Excel 里手动微调一下。
4. 删除模板
「报表管理」页每行右边有「删除」,模块数据页的「生成报表」弹窗里管理员也能选中某个模板点「删除此模板」。删除会连模板文件一起清掉,之前用这个模板生成过的 Excel 不受影响。