PythonExcel读写教程_openpyxl基础用法

openpyxl通过Workbook、Worksheet、Cell三层结构操作.xlsx文件,纯Python实现无需Excel软件;新建用Workbook(),加载用load_workbook(),保存需调用save();支持坐标与行列索引访问单元格(索引从1开始),可批量append数据;样式需导入Font、PatternFill等类设置。

openpyxl 读写 Excel 文件,核心是理解工作簿(Workbook)、工作表(Worksheet)和单元格(Cell)三层结构。它不依赖 Excel 软件,纯 Python 实现,适合自动化处理 .xlsx 文件。

创建与加载工作簿

新建空工作簿直接调用 Workbook();加载已有文件用 load_workbook()。注意:加载时默认只读模式会更快,如需修改必须关闭只读(read_only=False,也是默认值)。

  • 新建: wb = Workbook(),此时自动带一个名为 "Sheet" 的工作表
  • 加载: wb = load_workbook("data.xlsx")
  • 保存: wb.save("output.xlsx")(路径不存在会报错,需确保目录存在)

操作工作表

通过 wb.active 获取当前激活表,或用 wb["Sheet1"] 按名获取。新增表用 wb.create_sheet("NewTab"),删除用 wb.remove(wb["OldTab"])

  • 重命名表:ws.title = "汇总"
  • 查看所有表名:wb.sheetnames
  • 切换活跃表:wb.active = wb["明细"]

读写单元格数据

单元格支持坐标(如 "A1")和行列索引(如 row=2, column=3)两种访问方式,索引从 1 开始(不是 0)。

立即学习“Python免费学习笔记(深入)”;

  • 写入:ws["B2"] = "销售额"ws.cell(row=2, column=2, value="销售额")
  • 读取:value = ws["C5"].valuevalue = ws.cell(5, 3).value
  • 批量写入列表:用 ws.append([1, "张三", 85]) 追加一行(自动换行)

样式与格式(简用)

openpyxl 支持字体、边框、填充色等基础样式,但不支持公式计算或图表渲染。常用样式需导入对应类。

  • 加粗字体:from openpyxl.styles import Font; ws["A1"].font = Font(bold=True)
  • 设置背景色:from openpyxl.styles import PatternFill; fill = PatternFill("solid", fgColor="FFFF00"); ws["B1"].fill = fill
  • 调整列宽:ws.column_dimensions["C"].width = 20

不复杂但容易忽略:保存前务必调用 .save();读取时若文件正被 Excel 打开,会因占用而报错;写入数字时无需转字符串,openpyxl 自动识别类型。