开发
成果示例
把 9 家门店的月度销售文件合并成一份 Excel 报表
如何运行
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO 文件夹:sales/2026-10,找到 9 个文件
2026-11-02 09:14:03 INFO shop-01.csv:1,284 行
2026-11-02 09:14:04 INFO shop-02.xlsx:967 行
2026-11-02 09:14:04 WARN shop-07.csv:跳过 3 行缺少价格的记录(第 88、412、913 行)
2026-11-02 09:14:05 INFO 完成:10,412 行 -> report-2026-10.xlsx(工作表“销售”和“汇总”)
改设置,不改代码
每家门店的列名都写在 settings.ini 中,所以新增一家门店或某列改了名,只需在那里改一行:
[columns]
date = 日期, 销售日期, 日
product = 商品, 品名, 名称
quantity = 数量, 件数, 个数
price = 价格, 单价
部分代码
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""读取一家门店的文件,并把列名改为报表使用的列名。"""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}:找不到“{name}”对应的列(已查找 {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
**文件:**一个 ZIP 压缩包,内含 merge_sales.py(310 行)、settings.ini、requirements.txt 和 README,说明如何安装 Python、运行脚本以及日志中每条消息的含义。客户在自己的电脑上运行。
**客户:**一家拥有 9 家门店的小型文具连锁店;每家门店每月以 CSV 或 Excel 文件发送当月销售数据,各自的列名略有不同。 **任务:**一个脚本,读取文件夹中的所有文件,把各列统一成同一格式,并生成一份 Excel 报表,包含全部销售记录和一张按门店汇总的工作表。
客户及所有信息均为虚构。
服务介绍
当您需要给 80 位客户、学员或合作伙伴发同一封邮件,并在其中写上他们的姓名、日期或金额时,复制粘贴要花好几个小时。这个 Google Apps Script 脚本放在您的 Google 表格中,从您自己的 Gmail 给每一行发送一封个性化邮件:它把 {{Name}}、{{Date}} 以及任何其他列填进您的模板,在该行写上“已发送”和时间,并跳过已发送的行,所以重复运行也很安全。它适用于您自己的、期待收到您邮件的联系人名单,而不是购买的名单或陌生群发。Google 会限制脚本每天能发送的邮件数量,免费 Gmail 的上限低于 Google Workspace;脚本到达上限时会停下,稍后再继续。脚本由您在自己的账户中安装和运行。
服务内容
- 您将获得一个 ZIP 压缩包,内含 Apps Script 代码和 README,说明如何把它粘贴到您的表格中、授予权限并发送;订单页面上也能查看代码。
- 个性化字段表格中的任何一列都能用在主题和正文中
- 从您自己的 Gmail 发送回复会回到您这里,和您发出的任何邮件一样
- 发送标记每一行都显示发送时间,所以不会重复发送
- 遵守 Google 的限制到达每日上限时停下,稍后继续
- 代码易读附有注释,以后修改模板很方便
服务流程
- 1任务您发来表格的列和想发送的邮件
- 2代码我们编写脚本和安装说明
- 3试用您把它粘贴到表格副本中,先发给自己的邮箱试试
- 4修改您在套餐范围内提出修改,如有报错信息请一并发来
需要您提供的信息
您表格的列名,以及两三行使用虚构姓名和地址的示例;邮件的主题和正文,并标出各列填入的位置;以及是纯文本,还是采用 Gmail 草稿中的格式。名单上是哪些人、他们是怎么进入名单的(您的客户、会员、学员),大约多少行,以及您用的是免费 Gmail 还是 Google Workspace。如有附件,请说明它们在您云端硬盘中的位置。
我们会询问您:
- 您要写信给谁?
- 表格有哪些列?
- 邮件要写什么?
- 免费 Gmail 还是 Google Workspace?
套餐对比
付款保障
您在下单时付款,但款项仅在您验收后才会结算。
- 固定价格付款后套餐价格不会变动。
- 款项先冻结付款时,这笔金额只是被冻结。您验收后,款项才会结算给平台。
- 交付前检查每份成果在送达您之前都会经过质量检查,验收前您可以在订单页面查看。
- 免费修改在需求说明范围内,您可以在套餐允许的次数内提出修改。
- 3 天后自动验收如果交付后 3 天内您既未验收也未提出修改,工作将自动验收。如果您在交付后于订单聊天中留言,订单将暂停自动验收;我们回复后,可能会重新开始计算 3 天,并会在聊天中告知您。
- 返工或全额退款如果成果与您的需求说明不符且修改后仍未解决,或工作耗时超过交付期限的两倍,请在订单聊天中留言:我们将为您返工或全额退款。
问题与解答
一天能发多少封邮件?
Google 允许您的账户通过脚本发送多少封,就能发多少封,免费 Gmail 的上限低于 Google Workspace;当前数值可在 Google 的 Apps Script 配额页面查看。脚本到达上限时会停下,下一次运行会从第一行未发送的记录继续。
我能发给购买的名单吗?
不能。这个脚本面向认识您、期待收到您邮件的人,例如您的客户或会员。购买名单和陌生群发违反 Google 的规定,可能导致您的账户被封禁。
会加上退订链接吗?
可以加一句话,请不想再收到这类邮件的人回复告知,并跳过您标记为已退订的行。如果是需要一键退订的电子刊物,用邮件营销服务更合适。
你们会获得我 Gmail 的访问权限吗?
不会。您把代码粘贴到自己的表格中,Google 会请您(而不是我们)授权它发送邮件。我们从不登录您的账户。
没有找到答案?


