Python零基础入门:环境搭建与第一个Excel读写示例
一、Python 环境准备与安装验证
在编写任何代码之前,电脑中必须安装 Python 解释器。Python 解释器负责将人类可读的代码语句翻译为计算机底层能够执行的指令。对于首次接触编程的读者,安装过程中最重要的一步是将 Python 添加到系统的环境变量中。
1. 下载与安装 Python 解释器
在浏览器中访问 Python 官方网站(python.org),在顶部导航栏找到 Downloads 菜单。系统会自动识别你的操作系统(Windows 或 macOS)并推荐对应的下载版本。建议直接下载当前稳定的 Python 3 版本安装包。
双击运行下载完成的安装包。在 Windows 安装初始界面底部,务必手动勾选 “Add python.exe to PATH”(添加 Python 到环境变量),随后点击“Install Now”即可完成默认安装。若漏选此项,命令行将无法直接识别 python 命令,导致后续运行报错。
2. 在终端中验证环境可用性
安装完成后,需要验证解释器与配套包管理工具是否已经就绪:
- Windows 用户:按下快捷键
Win + R,在运行窗口中输入cmd并回车,打开命令提示符。 - macOS 用户:按下
Command + 空格,输入Terminal或“终端”并回车。
在弹出的黑色终端窗口中,分别输入以下两条指令并回车:
python --version
pip --version
如果终端能够清晰输出对应的版本号,说明 Python 主程序与包管理器 pip 均已正确就位。
二、安装 Excel 支持库与理解数据模型
Python 标准库原生并未内置直接读写现代 Excel 文件(.xlsx)的功能模块。为了处理此类文件,我们需要安装第三方库 openpyxl。
1. 使用 pip 安装 openpyxl
继续在终端窗口中输入以下命令并回车:
pip install openpyxl
该命令会自动从 Python 官方包索引源下载并安装 openpyxl 及其依赖。安装完成后,会看到类似 Successfully installed openpyxl-... 的提示信息。
2. Excel 文件的三层逻辑结构
在编写代码前,理解 openpyxl 对 Excel 文件的抽象模型非常重要。日常使用的 Excel 表格包含三层明确的层级关系:
- 工作簿(Workbook):对应保存在电脑磁盘上的整个
.xlsx文件。 - 工作表(Worksheet):工作簿内部包含的具体标签页(如 Sheet1、Sheet2)。一个工作簿可容纳多个工作表。
- 单元格(Cell):工作表由行(Row)和列(Column)交叉构成的二维网格,每个格子即为一个单元格,存储具体的数据值(Value)。
三、第一个写入示例:生成员工考勤统计表
接下来我们编写一段完整的脚本,创建一个全新的 Excel 文件,并向其中写入表头与若干条测试数据。请在电脑的任意工作目录中(例如新建一个名为 excel_demo 的文件夹),创建一个名为 write_excel.py 的文本文件,并将以下代码粘贴进去:
from openpyxl import Workbook
# 1. 在内存中创建一个新的工作簿对象
wb = Workbook()
# 2. 获取当前默认激活的工作表
ws = wb.active
ws.title = "部门考勤表"
# 3. 定义表头数据与行数据
headers = ["员工编号", "姓名", "部门", "出勤天数", "请假天数"]
rows_data = [
["E001", "张小凡", "研发部", 22, 0],
["E002", "李明月", "市场部", 20, 2],
["E003", "王志刚", "运营部", 21, 1],
["E004", "赵丽华", "财务部", 22, 0]
]
# 4. 使用 append() 方法逐行追加数据
ws.append(headers)
for row in rows_data:
ws.append(row)
# 5. 将内存中的工作簿持久化保存到磁盘
output_filename = "attendance.xlsx"
wb.save(output_filename)
print(f"数据已成功写入并保存为:{output_filename}")
代码逐行说明:
from openpyxl import Workbook:从openpyxl模块导入Workbook类。wb = Workbook():在内存中新建一个空工作簿,该对象在调用保存前完全停留在内存中,不会立即产生磁盘文件。ws = wb.active:获取刚创建时的默认 Sheet,并将ws.title改为“部门考勤表”。ws.append(...):这是向 Excel 追加整行数据最高效、最不易出错的方法。接收一个列表作为参数,按顺序自动填入当前工作表的下一行。wb.save("attendance.xlsx"):将内存数据以符合 Office OpenXML 规范的格式写入本地磁盘文件。
attendance.xlsx,wb.save() 会直接覆盖原文件而不会弹窗警告。此外,若该文件正在被 Microsoft Excel 或 WPS 软件打开,执行此行会引发权限错误。
四、第一个读取示例:读取并遍历表格内容
文件成功创建后,我们再编写一个名为 read_excel.py 的独立脚本,读取刚才生成的 attendance.xlsx,并把表格中的内容逐行解析打印在终端控制台上。
from openpyxl import load_workbook
# 1. 加载已经存在的 Excel 文件
input_filename = "attendance.xlsx"
wb = load_workbook(input_filename)
# 2. 获取指定名称的工作表
ws = wb["部门考勤表"]
# 3. 逐行读取内容并打印
print("=== 开始读取 Excel 表格内容 ===")
for row in ws.iter_rows(values_only=True):
# row 是一个包含当前行所有单元格数值的元组
print(row)
print("=== 读取完成 ===")
进阶:按列提取或精确获取指定单元格
在日常数据处理中,如果不需要整行打印,而是需要获取特定坐标的值,可以使用两种常用方式:
- 通过坐标标签获取:
val = ws['B2'].value,直接取得 B 列第 2 行的姓名字符串。 - 通过行列数字获取:
val = ws.cell(row=2, column=2).value。这种方式特别适合用在for循环中,通过递增行号和列号实现矩阵遍历。
五、初学高频问题与排查方法
在初次运行读写脚本时,读者通常容易遇到以下几类典型报错:
1. PermissionError: [Errno 13] Permission denied
表现:在调用 wb.save() 时报错拒绝访问。
原因:目标 Excel 文件正处于打开状态(例如用 Excel 或 WPS 打开了预览窗口)。操作系统对正在编辑的文件加了独占写锁。
解决:在电脑中完全关闭该 Excel 表格的查看窗口,然后重新在终端中运行 Python 脚本即可。
2. ModuleNotFoundError: No module named 'openpyxl'
表现:执行 import openpyxl 时报错找不到模块。
原因:通常是因为电脑中安装了多个 Python 环境,pip 将包安装到了系统环境 A,而运行脚本时使用了环境 B;或者终端未能正确识别虚拟环境。
解决:可以使用 python -m pip install openpyxl 命令重新安装。显式通过当前激活的 python 解释器来调用对应的 pip 工具,确保依赖包安装在同一路径下。
3. 单元格索引混淆(从 1 开始计)
表现:试图获取第一行第一列却执行了 ws.cell(row=0, column=0),导致抛出 ValueError: Row or column values must be at least 1。
原因:Python 列表的下标从 0 开始,但 Excel 表格的行号(Row)与列号(Column)在规范中严格从 1 开始计(第一行对应数字 1,A 列对应数字 1)。使用 openpyxl 访问坐标时需时刻牢记这一差异。
六、总结与下一步建议
掌握了 Python 环境配置与 openpyxl 基础读写,你就迈出了用编程解放重复劳动的关键一步。整个核心操作链路可以概括为:准备环境 ➔ 建立工作簿 ➔ 获取工作表 ➔ 追加或迭代单元格数据 ➔ 刷盘保存。
在熟练运行上述基础代码后,你可以继续尝试在单元格中应用公式(如 =SUM(D2:E2))、设置表头背景色与字体加粗样式,或者编写一个简单的 os.listdir() 循环,将文件夹下几十个同结构的 Excel 表格一键合并成单个总表,体验 Python 在实际办公场景中的自动化价值。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









