做独立开发之前,我从事的是企业财务数据的统计工作,每个月最耗时间的不是数据统计,而是按照固定的格式制作一批又一批让老板查阅的报表,老板对报表排版的要求很高,而且很多时候需要打印成纸质报表方便查阅。我对SQL查询语言有一定了解,数据统计工作一般很轻松就完成了,但是要达到老板对报表的要求,每个月要花费大量的时间。虽然有固定的报表模板,但是统计结果要一列一列地手工粘贴至Excel表格和Word文档中,一不小心格式覆盖了,要调整数据格式、小数位数、合并表头、内容对齐,还要调整报表的日期等信息——全靠手工复制粘贴调格式。一份月报做一整天,改个口径还得全部返工。我了解过,同事几乎人人如此:数据都有,缺的是"能直接打印报送的成品报表"。

我调研过报表设计器类的商业软件,安装重、学习成本高,模板锁在私有格式里业务人员不能随意改动;也试过邮件合并和 VBA 填表,对多数据集、动态行支持很弱。于是我决定按照自己的使用习惯自己开发一个轻量级的报表工具。合适思路是"模板 + 标记":模板还是用户最熟悉的 Excel/Word 文件,单元格里写 {% 标记 %} 占位符,程序负责解析、查数、回填并保留原格式。

这个工具围绕三层抽象设计:数据源(MySQL/PostgreSQL/SQLite/SQL Server/Oracle/DuckDB)、数据集(一条 SQL,带参数)、模板(Excel/Word/TXT,插入标记)。标记语法支持单值引用与整块数据区(含横向/纵向填充),并内置一批面向统计场景的内联函数(随后我会慢慢把函数列表整理成文档,后续会根据使用情况继续扩充)。用户输入参数后一键运行,出来的就是可直接打印报送的成品。

这个工具的典型使用场景是统计人员写一句"SELECT 月份, 指标 FROM 月报表"存为数据集,在单位的 Excel 模板里插入几个标记,运行时输入年份,两分钟得到整份填好的同比分析月报,直接打印使用;财务人员用它把多张明细表合并进固定报表模板,口径一改只需改 SQL语句,模板一个字不用动。

这个工具做完拿给以前的同事使用,基本能解决日常工作中制作报表时重复取数和排版的问题,节省了不少时间。