Python 的openpyxl 库

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 写入 Excelimport pandas as pd

df = pd.DataFrame(data[1:], columns=data[0])
df.to_excel("report_by_pandas.xlsx", index=False)

📝 pandas 内部默认使用 openpyxl 写入 .xlsx 文件。
转载:https://mp.weixin.qq.com/s/e4deirJEoJGd6STxwd9EgA

posted @ 2025-05-16 09:26  vetra  阅读(132)  评论(0)    收藏  举报