WPS表格如何按日期自动生成周报并通过邮件定时推送?
用WPS多维表+Python列汇总日期数据,一键生成周报并调用本地邮件客户端定时推送,全程无代码也可复用模板。

功能定位:为什么选“多维表+Python列”而不是传统ET
2026 年 3 月更新后,WPS 把「多维表」正式推到前台:单表千万行依旧流畅,还自带「Python 脚本列」。对周报场景而言,这意味着可以把“按日期汇总”从过去的透视表+宏路线,直接迁移到“SQL 式视图+脚本列”路线——日期维度自动展开,汇总逻辑一次写成,后续只需刷新数据源即可。相比之下,旧版 .et 若用 VBA 得先手动启用宏,macOS 端兼容性也差;传统透视表则每次新增日期都要重新拖拽字段,重复劳动肉眼可见。
把关键词“WPS表格如何按日期自动生成周报并通过邮件定时推送”拆成两步,新版答案变得清晰:① 在多维表完成「自动汇总」;② 用「Python 脚本列」调用本地 SMTP 或 Outlook 完成「邮件定时推送」。下文按版本演进顺序,给出可直接复现的完整路径。
前置条件与版本边界
1. 客户端:Windows 需 12.9.0 及以上,macOS 需 12.9.1 及以上,移动端暂不支持 Python 列。
2. 账号:登录 WPS 账号并开通「AI 会员」即可使用 Python 列(积分制,每日签到送 20 分,脚本运行一次扣 5 分)。
3. 数据源:日期字段必须为「日期」类型,而非文本;若导入 CSV,可在「数据→分列」里把列类型改成日期。
警告
政企版若开启国密 SM9 加密,Python 列无法访问外网 SMTP,需改用内网邮件网关,否则报 SSL 验证失败。
场景映射:什么样的周报最适合自动化
经验性观察:若你的周报满足以下三项,就值得投入 30 分钟搭建模板——
① 日期维度连续,且每周汇总一次;
② 指标列固定(如销售额、订单量、缺陷数),无需频繁增删字段;
③ 收件人列表稳定,且对格式容忍度较高(HTML 表格即可)。
反例:若每周都要临时新增「自定义指标」或需要嵌套图表,则自动模板反而增加沟通成本,建议半自动——多维表汇总后手动插入图表再发邮件。
操作路径:Windows 端最短 7 步完成
Step 1 新建多维表
启动 WPS→左上角「新建」→「多维表」→选择空白模板。保存时后缀为 .mde,区别于传统 .et。
Step 2 导入原始明细
点击「数据→导入」→选 CSV/Excel→映射日期列→把列类型设为「日期」。导入后右上角可见行数,若超 100 万行,经验性观察首次加载需数十秒,后续增量刷新在亚秒级。
Step 3 建「视图」按周汇总
顶部「+新建视图」→选择「汇总视图」→拖动「日期」到分组区→右键「按周」合并。再把需汇总的指标(如销售额)拖到值区→选「求和」。此时已得到一张按周汇总的透视式表格。
Step 4 添加 Python 脚本列
右侧「工具箱」→打开「Python 列」→输入列名「邮件正文」→在编辑器粘贴以下示例代码(已做脱敏处理):
import pandas as pd
html = pd.DataFrame({'周': [week], '销售额': [sales]}).to_html(index=False)
return html
其中 week、sales 为视图中的字段名,点击「字段」按钮可快速插入占位符。保存后该列会在每一行生成一段 HTML 表格字符串。
Step 5 设置定时刷新
「数据→刷新设置」→勾选「每周一 08:00 自动刷新」。此触发器由本地客户端接管,电脑需处于开机且 WPS 在后台运行。若用笔记本,建议接电源并在「电源管理」里允许后台任务。
Step 6 写邮件推送脚本
再新建一个 Python 列「发邮件」,调用本地 Outlook 或 SMTP。示例(SMTP):
import smtplib, ssl
from email.mime.text import MIMEText
msg = MIMEText(html, 'html', 'utf-8')
msg['Subject'] = '本周销售简报'
with smtplib.SMTP_SSL('smtp.example.com', 465) as s:
s.login('user', 'pass')
s.sendmail('[email protected]', ['[email protected]'], msg.as_string())
return 'sent'
若公司用 Exchange,可改用 win32com 调 Outlook,减少密码硬编码风险。
Step 7 测试与回退
右键「运行脚本」→查看「日志」页签,若返回 sent 即成功。失败常见原因:SMTP 被防火墙拦,需在内网开通 465 端口;或 SSL 证书验证失败,按官方 FAQ 在脚本头加两行跳过验证(仅内网测试)。
提示
若需回退到手工流程,只需把视图导出为 .et 文件,旧版用户即可打开,但 Python 列会被丢弃,需重新用透视表+宏实现。
macOS 端差异与注意点
1. 路径:顶部菜单「文件→新建→多维表」;无「数据→刷新设置」入口,需用「自动化→定时脚本」替代,底层依赖 macOS 的 launchd,若关盖会暂停。
2. 插件冲突:若曾安装旧插件 Wfonts,升级后会闪退,需进安全模式移入废纸篓。
3. SMTP:macOS 自带 Python3,证书路径与 Windows 不同,若报 SSL 错误,需在脚本里指定 capath:
import ssl, certifi context = ssl.create_default_context(cafile=certifi.where())
不适用场景清单
- 收件人邮箱超过 500 人:Python 列循环发送会耗尽 AI 积分,且可能被反垃圾拦截。
- 需要嵌套动态图表:多维表目前不支持「脚本生成图表」,只能输出 HTML 表格或图片链接。
- 电脑无法长期开机:定时任务依赖本地客户端,若用笔记本且经常休眠,建议改用服务器版 WPS 灵犀自动化(需企业版授权)。
- 数据源需实时合并多个云端 API:Python 列在内网加密环境无法访问外网,需额外代理,违反合规。
最佳实践 10 条检查表
- 日期字段统一用「YYYY-MM-DD」格式,杜绝文本型日期。
- 视图命名带「Week」前缀,方便后续脚本引用。
- 脚本列先 return 静态文本,调通后再替换为 HTML,减少调试积分消耗。
- SMTP 密码用环境变量读入,避免硬编码。
- 发送前先把收件人替换成自己的小号,验证格式与乱码。
- 每周运行后把「发邮件」列结果复制为值,防止重复触发。
- 若公司用国密加密,务必把 SMTP 改为内网中继,关闭 SSL 验证仅作临时测试。
- 把 .mde 文件存到「云文档」并开历史版本,脚本误删可一键恢复。
- 月底检查 AI 积分余额,低于 50 分提前签到或让管理员分配。
- 每年大版本升级前,先在测试机打开模板,确认 Python 列 API 未变更。
故障排查速查
| 现象 | 最可能原因 | 验证步骤 | 处置 |
|---|---|---|---|
| 脚本列报「SSL: CERTIFICATE_VERIFY_FAILED」 | 政企版开启国密,Python 无法找到根证书 | 在脚本里 print(ssl.get_default_verify_paths()) | 导入公司根证书,或临时跳过验证(内网测试) |
| 定时刷新未触发 | 笔记本合盖或 WPS 被系统休眠 | 查看系统事件日志有无「WPS background task」 | 接电源并设置「始终运行」电源方案 |
| 邮件发送成功但对方收不到 | 被企业网关拦截 | 在邮件日志查看 250 OK 后有无后续 reject | 联系 IT 把发送服务器加入白名单 |
FAQ(结构化数据)
Python 列能否调用内网数据库?
可以,但需管理员在后台开启「数据库外连」权限,并在脚本里使用公司根证书验证 SSL;否则报 SSL 错误。
移动端能否收到定时推送?
移动端本身不运行 Python 列,但邮件推送不受限制;只要电脑端脚本执行成功,手机端即可正常收到邮件。
AI 积分用完怎么办?
可每日签到+20 分,或让企业管理员在后台分配月度积分池;临时救急可把脚本列结果复制为值后停用脚本。
升级到最新版后旧 .et 宏会失效吗?
旧宏仍兼容,但无法迁移到多维表;建议保留原文件作备份,新建 .mde 后逐步迁移逻辑。
能否直接生成图表并插入邮件?
截至当前的最新版本,Python 列尚未开放「生成图表」API,需先导出图片再嵌入 HTML,步骤较繁琐,建议先表格呈现。
版本差异与迁移建议
2025 及更早版本没有多维表,需用「数据透视表+VBA」方案;若文件需给旧版同事查看,可在「文件→另存为」选「兼容模式(.et90)」,但 Python 列会丢失,务必保留 .mde 母版。经验性观察:同一数据量下,多维表刷新速度比透视表快约 30%,且内存占用更低,值得迁移。
收尾:下一步行动清单
1. 打开 WPS,确认版本号≥12.9.0;
2. 按本文 Step 1-4 搭建最小可运行模板,先让 HTML 表格顺利生成;
3. 用自己的邮箱完成一次端到端测试,调通 SMTP;
4. 把定时刷新设为「每周一 08:00」并保证电脑常开;
5. 月底复盘:若积分消耗>收入,考虑让管理员分配月度池或改用内网 Exchange。
完成以上五步,你就拥有了一个「数据更新即周报自动送达」的闭环,后续只需维护数据源,无需再手动复制粘贴。祝使用顺利。