openpyxl是专用于读写.xlsx/.xlsm文件的python库,支持创建/读取工作簿、单元格操作、样式设置及多工作表管理。

openpyxl 是 Python 中最常用的 Excel 操作库之一,专为读写 .xlsx 和 .xlsm 文件设计,不支持旧版 .xls 格式。它功能完整、文档清晰,适合处理结构化数据、生成报表、批量修改表格等任务。
安装与基础读写
使用 pip 安装即可:
pip install openpyxl
创建新工作簿并写入数据:
立即学习“Python免费学习笔记(深入)”;
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws["A1"] = "姓名"
ws["B1"] = "分数"
ws.append(["张三", 95])
ws.append(["李四", 87])
wb.save("成绩表.xlsx")
读取已有文件:
方科网络ERP图文店II版为仿代码站独立研发的网络版ERP销售程序。本本版本为方科网络ERP图文店版的简化版,去除了部分不同用的功能,使得系统更加精炼实用。考虑到图文店的特殊情况,本系统并未制作出入库功能,而是将销售作为重头,使用本系统,可以有效解决大型图文店员工多,换班数量多,订单混杂不清的情况。下单、取件、结算分别记录操作人员,真正做到订单全程跟踪!无限用户级别,不同的用户级别可以设置不同的价
from openpyxl import load_workbook
wb = load_workbook("成绩表.xlsx")
ws = wb.active
print(ws["A1"].value) # 输出:姓名
print(ws.cell(row=2, column=2).value) # 输出:95
操作单元格与区域
openpyxl 支持按坐标、行列号或范围方式访问数据:
- 用 ws["C3"] 直接定位单元格(返回 Cell 对象)
- 用 ws.cell(row=3, column=4) 动态获取(适合循环)
- 用 ws["A1:C5"] 获取矩形区域,返回二维元组(每行是 tuple)
- 用 ws.iter_rows(min_row=2, max_col=3) 迭代指定范围的行
样式与格式设置
可对字体、边框、填充色、对齐方式等进行精细控制:
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side
# 设置字体加粗、红色
ws["A1"].font = Font(bold=True, color="FF0000")
# 设置背景色和居中
fill = PatternFill(start_color="FFFFCC", end_color="FFFFCC", fill_type="solid")
ws["A1"].fill = fill
ws["A1"].alignment = Alignment(horizontal="center", vertical="center")
# 添加细边框
border = Border(left=Side(style="thin"), right=Side(style="thin"))
ws["A1"].border = border
处理多张工作表
一个工作簿可包含多个 sheet,支持增删改查:
- 新建 sheet:wb.create_sheet(title="汇总")
- 切换 active sheet:wb["汇总"] 或 wb.worksheets[1]
- 重命名 sheet:wb["Sheet"].title = "数据源"
- 删除 sheet:wb.remove(wb["临时表"]) 或 del wb["临时表"]
注意:删除 sheet 后需保存才能生效;修改 sheet 名称不影响已引用的变量名。









