> 写在前面:我是一名医院安全保卫部的普通工作者,不是程序员。但过去一周,我借助 AI 工具从零搭建了一套完整的日报自动化系统。这篇文章记录了这个过程,希望能给同样「非技术但想用好 AI」的朋友一些启发。
---
我在医院安全保卫部工作,每天需要整理安防日报——统计门诊安检人次、住院安检人次、消防火警次数、车辆管理、违禁品收缴等十几类数据。
这些数据存在**腾讯文档智能表格**里,每天手动汇总、排版、生成 PDF,少说也得花半小时。更头疼的是:
- 要从几十个字段里找到正确的数据列(字段名带编号前缀,比如"8.门诊安检人次")
- 有些数据要配上现场照片
- 还要生成 15 天趋势折线图
- 最后导出两种格式(电脑端 + 手机端),给不同的人看
一周前我决定:**让 AI 把这事干了**。
---
整个过程我没有写一行专业代码。所有的脚本、配置、调试,都由 AI 助理(WorkBuddy)完成。我负责的是:**描述需求、发现问题、给反馈、迭代优化**。
最终的技术方案:
| 数据源 | 腾讯文档智能表格 | 通过 API 读取每日安防数据 |
| 图表 | Python 生成纯 SVG | 15 天安检人次 & 火警趋势折线图 |
| 照片 | 腾讯文档 API + base64 | 现场照片嵌入 HTML,无需外部文件 |
| 排版 | HTML + CSS | 现代卡片式布局,emoji 图标,彩色分区 |
| PDF | Edge CDP + Playwright | 不分页单页输出,电脑端+手机端双版本 |
| 定时 | WorkBuddy Automation | 每天定时自动执行 |
---
智能表格的 API 返回的字段名不是"门诊安检人次",而是 **"8.门诊安检人次"**——前面有个编号。直接用直觉去匹配字段名,全部报 KeyError。
✅ 解决:先调用 `list_fields` API 拿到真实的字段名列表,再用编号前缀去匹配。这个教训花了我两天时间。
HTML 模板里放了很多 emoji(🏥 🔥 🚗),Python 字符串处理时报 `UnicodeEncodeError: surrogates not allowed`。原因是 emoji 在 Python f-string 里会产生代理对。
✅ 解决:全部改用 HTML 实体(`🏥` 代替 🏥),在代码里用字典变量引用。同时加了个兜底的 `clean_surrogates()` 函数。
明明智能表格里有照片,API 查到就是没数据。
✅ 解决:两个关键点——(1)必须用 `record_ids` 精确指定记录,不能用 `limit/offset` 模糊查询;(2)下载照片时必须带 `Referer: https://docs.qq.com/` 请求头,否则 CDN 返回 403。
一开始用 ReportLab 生成 PDF,样式和 HTML 差太远。后来改用 `page.pdf()` 方法,又遇到分页、报错 `"Failed to parse parameter value"` 等问题。
✅ 最终方案:启动 Edge 浏览器的 headless 模式,用 Playwright 通过 CDP 协议连接,用 `width="1200px"` + `height="XXXpx"`(注意是 px 不是 pt!)设置页面尺寸,打印背景色。这样就得到了和 HTML 一模一样、不分页的单页 PDF。
PDF 拿到手机上,字小得根本看不清——尤其我们有些领导年纪大了,眼睛花。
✅ 解决:生成两套版本。电脑端用 11-13px 的字号;手机端统一放大——正文 24px、标签 23px、数据大字 32px。生成逻辑是:先做电脑端 HTML,再对字号做字符串替换生成手机端版本。效果立竿见影,老年人也能看清了。
---
每天定时执行,无需任何人工操作:
1. 📊 **自动拉取数据**:从腾讯文档智能表格读取前一天的所有安防数据
2. 📈 **生成趋势图**:15 天安检人次折线图 + 15 天火警次数折线图(纯 SVG,数据点标注数值)
3. 📷 **嵌入现场照片**:自动下载巡逻、维修、宣教等场景照片,base64 嵌入日报
4. 🎨 **现代卡片布局**:深色头部 + 盾牌徽章 + 8 张数据概览卡片 + 彩色分区详情
5. 📄 **一次生成 4 个文件**:
- 电脑端 HTML(1200px 宽)
- 电脑端 PDF
- 手机端 HTML(1000px 宽,大字体)
- 手机端 PDF
最终文件命名如:`河南省肿瘤医院安防日报_2026年5月19日_电脑端.html`
---
这一周最大的收获不是"自动化做成了",而是**学会了怎么跟 AI 协作**。
最开始我说"生成一个好看的日报",结果出来和预期差距很大。后来我发现,要给 AI 看**你心目中的样子**——告诉它"卡片式布局、深色头部、彩色左边框、emoji 图标",它就能做对。
排版不满意的时候,不要说"再好看一点",而是:
- "统计标注的字号从 10px 改成 11px"
- "数据卡片的圆角从 12px 改成 16px"
- "两个折线图不要并排,上下堆叠"
给具体数值,AI 就能精准执行。
每解决一个问题,我都让 AI 把解决方案写进自动化提示词里。现在的提示词已经积累了十几个关键规则——字段名匹配、emoji 处理、照片提取、PDF 参数、CSS 打印兼容……每次执行都会自动遵守这些规则,不会反复踩坑。
第一版很丑,第二版好了一点,第三版才像样。到第五六版的时候,AI 的审美突然就对了——它会自己调整配色、优化间距、增加细节。这个过程急不得。
---
说实话,一周前我认为"写代码让 AI 自动做报表"是程序员才能做的事。
但实际体验是:**AI 不在乎你是不是程序员**。它在乎的是你能不能把需求说清楚、能不能发现问题、能不能给出具体的改进方向。
这个过程中,我没有写过一行代码。但我学会了:
- 什么是 API、什么是 base64
- 代理对(surrogate pairs)是什么鬼
- CDP 协议和 Playwright 是干嘛的
- CSS 的 @media print 有多重要
这些不是提前学的,是做的时候自然就明白了。
---
系统已经稳定运行,但还有几个方向想探索:
- 📱 对接企业微信,日报自动推送到群里
- ☁️ 迁移到云服务器,实现真正的 7×24 无人值守
- 📊 增加周报和月报的自动汇总
- 🚨 异常数据自动预警(比如某天火警次数突增)
如果你也在用 AI 做类似的自动化,或者有更好的实现思路,欢迎交流!
---
*作者:元吉 | 工具:WorkBuddy AI | 2026 年 5 月*
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。