Python 的openpyxl 库可以用于处理和编辑 Excel 文件,适用于日常办公自动化、数据分析、报表生成等场景。
一、安装库
pip install openpyxl
二、基础操作
1. 创建一个新的 Excel 文件
from openpyxl import Workbook
wb = Workbook()
ws = wb.active # 获取默认工作表
ws.title = "报告"
ws['A1'] = "姓名"
ws['B1'] = "成绩"
# 添加一行数据
ws.append(["张三", 95])
ws.append(["李四", 88])
wb.save("report.xlsx")
2. 读取 Excel 文件
from openpyxl import load_workbook
wb = load_workbook("report.xlsx")
ws = wb["报告"]
for row in ws.iter_rows(min_row=2, values_only=True):
name, score = row
print(f"{name} 的成绩是 {score}")
三、常见功能用法
1. 遍历单元格内容
for row in ws.iter_rows(min_row=1, max_col=2, max_row=3):
for cell in row:
print(cell.value)
2. 修改单元格
ws['B2'] = 100 # 修改李四的成绩
wb.save("report.xlsx")
3. 设置样式(字体、颜色、填充)
from openpyxl.styles import Font, PatternFill
ws['A1'].font = Font(bold=True, color="FFFFFF")
ws['A1'].fill = PatternFill("solid", fgColor="0000FF") # 蓝底白字
4. 合并单元格 / 拆分单元格
ws.merge_cells('A4:B4')
ws['A4'] = "总分"
# ws.unmerge_cells('A4:B4') # 拆分
5. 冻结窗口
ws.freeze_panes = 'B2' # 冻结第一行和第一列
6. 添加公式
ws['C1'] = "总和"
ws['C2'] = "=SUM(B2:B10)" # Excel公式语法
7. 设置列宽和行高
ws.column_dimensions['A'].width = 20
ws.row_dimensions[1].height = 25
四、保存并关闭
wb.save("final_report.xlsx")
五、实用场景举例
批量写入数据
data = [
["姓名", "语文", "数学"],
["小明", 89, 92],
["小红", 76, 88],
]
for row in data:
ws.append(row)
将 DataFrame 写入 Excel
import pandas as pd
df = pd.DataFrame(data[1:], columns=data[0])
df.to_excel("report_by_pandas.xlsx", index=False)
pandas 内部默认使用 openpyxl 写入 .xlsx 文件。
六、小技巧
values_only=True 用于只提取单元格的值,而不是单元格对象。
可以使用 openpyxl.utils.get_column_letter(n) 将列号转为 Excel 的列名(如 A、B、C)。
可通过 data_only=True 加载工作簿时获取公式的计算值(前提是已保存过计算结果):
wb = load_workbook("xx.xlsx", data_only=True)
更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。
想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!