上期回顾:
前面8期把Python基础夯了一遍,从print到异常处理,算是入了门。今天开始进入重头戏:Excel自动化。但咱不着急写代码,先把家伙事儿认全了——Python操作Excel到底有哪些库?哪个好用?怎么装?装完怎么跑通第一个读写?这期把这些整明白,后面才能顺溜。
一、Python操盘Excel,常见的三把扳手
网上搜“Python Excel”,蹦出来一堆库,新手直接看懵。咱把这几个捋清楚:

结论:现在的Excel基本都是 .xlsx 格式,无脑选openpyxl。它能读能写能改样式,不依赖Excel软件安装,纯Python搞定。xlrd/xlwt太老了,pandas是大炮(杀鸡也用,但装填慢),咱先从openpyxl开始。
二、装库,就一行
打开命令行(Win+R输入cmd,或者用PowerShell),敲:
pip install openpyxl等它跑完。验证一下:在Python交互环境(输入python回车)里输 import openpyxl,没报错就说明装好了。
如果报错:可能是网络问题,换镜像源:
pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple三、第一个程序:读取Excel里的一个格子
假设桌面上有一个 测试.xlsx,里面A1格子写了“Hello”。
from openpyxl import load_workbook# 加载工作簿(就是整个Excel文件)wb = load_workbook('测试.xlsx')# 看看有哪些工作表(sheet)print(wb.sheetnames) # 比如 ['Sheet1', 'Sheet2']# 选中第一个工作表ws = wb['Sheet1']# 读取A1格子的值value = ws['A1'].valueprint(value) # 输出 Hello# 完事儿不用关文件,openpyxl自动管理解释:
load_workbook把Excel文件读进内存。wb.sheetnames列出所有sheet名字。ws['A1']拿到A1格子对象,.value取出里面的值。
自己动手:在桌面建一个 测试.xlsx,随便写点东西,跑通这段代码。如果报错FileNotFoundError,说明文件路径不对,把 '测试.xlsx' 换成完整的绝对路径,比如 r'C:\Users\你的名字\Desktop\测试.xlsx'。
四、第二个程序:写入一个格子,保存新文件
from openpyxl import Workbook# 新建一个空白工作簿wb = Workbook()# 默认会有一个叫'Sheet'的工作表,拿过来ws = wb.active# 在A1格子写点东西ws['A1'] = '这是用Python写的'# 保存到桌面wb.save(r'C:\Users\你的名字\Desktop\输出.xlsx')解释:
Workbook()创建新文件,自带一个sheet。wb.active拿到这个默认sheet。直接给 ws['A1']赋值就写入了。save必须写完整路径或相对路径。
跑完这段,去桌面看看 输出.xlsx 是不是有了,打开A1是不是写了那句话。
五、两个程序的合体:读取一个格子,修改后存新文件
from openpyxl import load_workbook# 读原文件wb = load_workbook('测试.xlsx')ws = wb['Sheet1']# 读原值old = ws['A1'].valueprint(f'原值:{old}')# 改成新值ws['A1'] = f'{old},后面加个尾巴'# 存新文件(不覆盖原文件)wb.save('测试_修改版.xlsx')这个就是自动化的雏形:读、改、存。
六、今天学到的知识点
1. 三个库的区别:xlrd/xlwt管老格式,openpyxl管.xlsx,pandas是大数据分析用的。2. 安装:pip install openpyxl3. 读文件:三步:load_workbook → 选sheet → .value4. 写文件:三步:Workbook → 选sheet → 赋值 → save5. 路径:要么把Excel和脚本放一起用相对路径,要么用绝对路径(前面加r防止转义)。
七、下期预告
第10期讲怎么遍历行和列,一次性读写整个表格的数据,不用一个一个格子手动填。顺带讲 ws.max_row、ws.iter_rows 这些神器。
觉得有用、看着顺手,记得点个赞、转一圈,收个藏,支持下继续更!
想学习,拓展自己知识可以点进相应精选,查看代码解释和思路逻辑:
夜雨聆风