项目1:本地邮件正文生成器
项目目标
通过一个简单的脚本,从Excel读取员工名单,自动生成个性化的生日祝福邮件正文。这将帮你克服对命令行的恐惧,学会用自然语言让Claude写代码。
职场场景
痛点描述
每个月都有员工过生日,作为行政/人事,你需要:
- 打开Excel查看本月过生日的员工名单
- 给每个人写一封个性化的生日祝福邮件
- 复制粘贴到邮箱,一个个发送
::: 😓 问题所在
- 10个员工就要写10封邮件
- 每封邮件都要手动替换名字和日期
- 容易出错(比如名字写错、日期搞混)
- 浪费时间,但看起来又像"不得不做"的工作 :::
解决后收益
用Claude Code完成后:
- 1分钟生成所有邮件正文
- 不会出现名字或日期错误
- 可以直接复制到邮箱发送
- 模板可以复用,每个月都能用
准备工作
1. 下载示例文件
下载我们的示例Excel文件::download: employees.xlsx
Excel文件格式:
| 姓名 | 生日 | 部门 | 入职年数 |
|---|---|---|---|
| 张三 | 03-15 | 市场部 | 2 |
| 李四 | 03-20 | 技术部 | 1 |
| 王五 | 03-25 | 运营部 | 3 |
提示
你可以用自己的Excel文件,但需要确保:
- 第一行是列名(姓名、生日等)
- 生日格式统一(如:03-15表示3月15日)
2. 创建工作文件夹
在桌面创建一个新文件夹,命名为 email-generator,然后把Excel文件放进去。
::: tabs
Windows
- 在桌面右键 → 新建 → 文件夹
- 命名为
email-generator - 把
employees.xlsx拖进去
macOS
- 在桌面右键 → 新建文件夹
- 命名为
email-generator - 把
employees.xlsx拖进去 :::
开始项目
步骤1:打开 Claude Code
打开终端(如果你还没打开),输入:
claude你会看到欢迎信息,表示Claude Code已经准备好了。
步骤2:告诉 Claude 你要做什么
复制下面的完整Prompt,粘贴到Claude Code中,然后按回车:
✏️ 点击复制完整Prompt
我需要你帮我创建一个Python脚本,用于生成员工生日祝福邮件。
需求:
1. 读取同文件夹下的 employees.xlsx 文件
2. 为每个员工生成一封生日祝福邮件
3. 邮件内容要包括:员工姓名、部门、感谢他们在公司工作的时间
4. 每封邮件保存为一个单独的 .txt 文件,文件名格式为:{姓名}_生日邮件.txt
5. 所有文件保存在同文件夹下的 output 文件夹中
邮件模板:
"亲爱的{姓名}:
祝你生日快乐!🎂
感谢你在{部门}为团队做出的贡献。你已经在公司工作了{入职年数}年,是我们团队的重要成员。
希望你在新的一岁里,工作顺利,生活美满!
人力资源部
{当前日期}"
请创建这个脚本,并且:
- 使用pandas库读取Excel
- 使用datetime获取当前日期
- 创建output文件夹(如果不存在)
- 用UTF-8编码保存文件(支持中文)
- 添加详细的中文注释说明每一步步骤3:观察Claude的工作
Claude Code会:
- 理解你的需求,告诉你它打算做什么
- 创建Python脚本(通常命名为
generate_emails.py) - 显示代码的diff(改动内容)
你会看到类似这样的输出:
我理解了你的需求。我会创建一个Python脚本来:
1. 使用pandas读取Excel文件
2. 为每个员工生成个性化的生日祝福邮件
3. 保存到output文件夹
让我先创建这个脚本...步骤4:运行脚本
脚本创建完成后,Claude Code会询问是否要运行。输入:
python generate_emails.py或者让Claude Code直接运行(它会自动执行)。
步骤5:查看结果
打开你的 email-generator 文件夹,你应该看到:
- 新建了
output文件夹 - 里面有几个
.txt文件,文件名是"员工姓名_生日邮件.txt" - 打开任意一个文件,里面是完整的生日祝福邮件内容
::🎉 恭喜!你刚刚用AI完成了第一个自动化任务!:::
代码解读
让我们看看Claude生成的代码在做什么:
# 导入需要的库
import pandas as pd # 用于读取Excel
import os # 用于操作文件路径
from datetime import datetime # 用于获取当前日期
# 读取Excel文件
df = pd.read_excel('employees.xlsx') # 把Excel数据加载到内存
# 创建output文件夹
if not os.path.exists('output'): # 检查文件夹是否存在
os.makedirs('output') # 如果不存在,就创建
# 获取当前日期
current_date = datetime.now().strftime('%Y年%m月%d日') # 格式:2026年03月15日
# 遍历每个员工
for index, row in df.iterrows(): # 逐行读取Excel数据
# 获取员工信息
name = row['姓名']
department = row['部门']
years = row['入职年数']
# 生成邮件内容
email_content = f"""亲爱的{name}:
祝你生日快乐!🎂
感谢你在{department}为团队做出的贡献。你已经在公司工作了{years}年,是我们团队的重要成员。
希望你在新的一岁里,工作顺利,生活美满!
人力资源部
{current_date}"""
# 保存邮件到文件
filename = f"output/{name}_生日邮件.txt" # 文件名
with open(filename, 'w', encoding='utf-8') as f: # 打开文件准备写入
f.write(email_content) # 写入邮件内容
print(f"已生成 {len(df)} 封邮件!") # 显示完成信息关键概念
- 库(Library):别人写好的代码工具包,我们可以直接使用
- 变量(Variable):存储数据的容器,比如
name存储员工姓名 - 循环(Loop):重复执行相同操作,这里是重复生成邮件
- 字符串格式化:用
{变量名}的方式把变量插入到文本中
常见错误 & Debug
错误1:ModuleNotFoundError: No module named 'pandas'
错误信息:
ModuleNotFoundError: No module named 'pandas'原因:你的电脑没有安装pandas库
解决方法:
pip install pandas openpyxl在终端中运行上面的命令,安装所需的库。
错误2:FileNotFoundError: employees.xlsx
错误信息:
FileNotFoundError: [Errno 2] No such file or directory: 'employees.xlsx'原因:Excel文件和脚本不在同一个文件夹中
解决方法:
- 确认
employees.xlsx和generate_emails.py在同一个文件夹 - 在终端中,先cd到那个文件夹:bash
cd Desktop/email-generator python generate_emails.py
错误3:中文乱码
问题:打开生成的txt文件,中文显示为乱码
原因:文件编码问题
解决方法:
- 用记事本打开时,选择"另存为",编码选择"UTF-8"
- 或者用VS Code、Notepad++等编辑器打开
错误4:KeyError: '姓名'
错误信息:
KeyError: '姓名'原因:Excel文件的列名和代码中的不匹配
解决方法:
- 打开Excel文件,确认第一行的列名
- 修改代码中的列名,使其与Excel一致
- 或者让Claude重新生成代码,告诉它正确的列名
扩展练习
完成基础项目后,试试这些改进:
练习1:添加邮件主题
让脚本同时生成邮件主题,保存为 {姓名}_主题.txt。
提示给Claude的Prompt:
请修改脚本,为每个员工同时生成邮件主题。
主题格式:"生日快乐!{公司名称}祝{姓名}度过美好的一天"
保存到同一个txt文件中,格式为:
主题:{邮件主题内容}
正文:
{邮件正文}练习2:只生成本月的生日邮件
修改脚本,只生成本月过生日员工的邮件。
提示给Claude的Prompt:
请修改脚本,只生成本月过生日员工的邮件。
需要:
1. 获取当前月份
2. 只处理生日月份等于当前月份的员工
3. 跳过其他员工练习3:生成HTML格式邮件
把邮件生成成HTML格式,支持字体、颜色等样式。
提示给Claude的Prompt:
请把邮件改成HTML格式,要求:
1. 使用内联CSS样式
2. 标题使用蓝色加粗字体
3. 添加生日蛋糕emoji
4. 文件扩展名改为 .html项目总结
恭喜你完成了第一个项目!🎉
在这个项目中,你学会了:
- ✅ 使用Claude Code创建Python脚本
- ✅ 读取Excel文件并处理数据
- ✅ 用循环批量处理任务
- ✅ 保存文件到指定位置
- ✅ 处理常见错误
现在你应该对命令行不再那么害怕了!