千家信息网

Python怎么用openpyxl模块操作Excel

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了Python怎么用openpyxl模块操作Excel的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么用openpyxl模块操作Excel文
千家信息网最后更新 2026年10月31日Python怎么用openpyxl模块操作Excel

这篇文章主要介绍了Python怎么用openpyxl模块操作Excel的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么用openpyxl模块操作Excel文章都会有所收获,下面我们一起来看看吧。

正式开始前依旧是模块的安装,使用如下命令即可实现:

pip install openpyxl

官方对于该库的描述是:

A Python library to read/write Excel 2010 xlsx/xlsm files

一款用于读写 Excel 2010 xlsx/xlsm 文件的库。

1.打开已有 Excel 文件

拿到该库之后,直接尝试打开一个本地 Excel ,然后才能对其中的数据进行控制。

from openpyxl  import load_workbookwb = load_workbook('测试表格.xlsx')# 输出# 

继续编码前还是需要了解一些关于 Excel 的相关知识点,如下所示:

  • Excel 中列名是字母,行号是数字,例如锁定第一个单元格是 A1,然后是 A2,接下来是A3;

  • Excel 中有工作簿,工作表,单元格三个概念组成,对应到 openpyxl 中就是 Workbook 类,Worksheet 类,Cell 类。

操作 Excel 基本遵循三步走策略:

  • 打开 Excel,产生 Workbook 对象;

  • 获取表格对象,即 Worksheet 对象;

  • 操作表格中的单元格对象,即 Cell 对象。

有这些概念之后,你会发现后续的代码就会变得极容易理解。

2.创建一个 Excel 文件,并修改 sheet

接下来的代码将会创建一个 Excel 文件,并将第一个默认 sheet 修改为【测试】

import openpyxlif __name__ == '__main__':    wb = openpyxl.Workbook()    ws = wb.active    # 更改第一个 sheet 名称    ws.title = "测试"    # 保存    wb.save('example.xlsx')

在 Python 文件的运行目录会生成如下文件,打开关注第一个 sheet 即可。

如果希望创建第二个表格页(sheet),继续在 Workbook 对象中追加 sheet 即可。

import openpyxlif __name__ == '__main__':    wb = openpyxl.Workbook()    ws = wb.active    # 更改第一个 sheet 页名称    ws.title = "Sheet1"    # 新增第二个 sheet 页    ws2 = wb.create_sheet("Sheet2")    # 新增第三个 sheet 页    # 将 create_sheet() 函数中的第二个参数定义为 0,表示该 sheet 在最前面    ws3 = wb.create_sheet("Sheet3", 0)    # 保存    wb.save('example.xlsx')

追加 sheet 使用的函数是 create_sheet() ,在使用的时候,可以根据第二个参数进行顺序设置。

如果你希望对 sheet 页签进行更细节的设置,可以进行属性配置,例如修改 sheet 页签背景

import openpyxlif __name__ == '__main__':    wb = openpyxl.Workbook()    ws = wb.active    # 更改第一个 sheet 页名称    ws.title = "Sheet1"    ws.sheet_properties.tabColor = "03a9f4"    # 新增第二个 sheet 页    ws2 = wb.create_sheet("Sheet2")    # 新增第三个 sheet 页    # 将 create_sheet() 函数中的第二个参数定义为 0,表示该 sheet 在最前面    ws3 = wb.create_sheet("Sheet3", 0)    # 保存    wb.save('example.xlsx')

3.选择 sheet 的不同方式

使用 wb["Sheet1"] 可以通过类字典模式进行 sheet 读取,还可以使用 get_sheet_by_name() 方法进行调用,但是该方法已被弃用,建议掌握第一种用法即可。

import openpyxlif __name__ == '__main__':    wb = openpyxl.Workbook()    ws = wb.active    # 更改第一个 sheet 页名称    ws.title = "Sheet1"    ws_1 = wb["Sheet1"]    ws_1_1 = wb.get_sheet_by_name("Sheet1")  # 该方法将被弃用,建议用上述形式调用    print(ws_1)    print(ws_1_1)    # wb.save('example.xlsx')

4.Worksheet对象

Worksheet 对象即表格对象,用于得到单元格中的数据,修改表格中的内容。

优先学习的相关属性如下所示:

  • title:表格的标题;

  • dimensions:表格数据区域大小;

  • max_row:表格的最大行;

  • min_row:表格的最小行;

  • max_column:表格的最大列;

  • min_column:表格的最小列;

  • rows:按行获取单元格(Cell)对象 ,返回生成器;

  • columns:按列获取单元格(Cell对象),返回生成器。

具体代码如下所示,其中用到的表格参考下述截图:

from openpyxl  import load_workbookwb = load_workbook('测试表格.xlsx')if __name__ == '__main__':    ws = wb.active    # 更改第一个 sheet 页名称    ws.title = "My_Sheet"    ws_1 = wb["My_Sheet"]    print(ws_1.title)  # 获取标题    print(ws_1.dimensions)  # 有数据的区域大小,无数据是 A1:A1    print(ws_1.max_row) # 最大行数    print(ws_1.min_row) # 最小行数    print(ws_1.max_column)    print(ws_1.min_column)    print(ws_1.rows)    print(ws_1.columns)

除属性外,Worksheet 对象的方法如下所示 Worksheet方法如下:

  • iter_rows:按行获取所有单元格,其值可以调用 Cell 的属性(min_row, max_row, min_col, max_col);

  • iter_columns:按列获取所有的单元格

  • append:在表格末尾添加数据

  • merged_cells:合并多个单元格

  • unmerged_cells:移除合并的单元格

Worksheet 对象的属性和方法基本都会返回 Cell对象,即单元格对象。

5.Cell 对象

Cell对象比较简单,常用的属性如下:

  • row :单元格所在的行

  • column:单元格坐在的列

  • value:单元格的值

  • coordinate:单元格的坐标

from openpyxl import load_workbookwb = load_workbook('测试表格.xlsx')if __name__ == '__main__':    ws = wb.active    for item in ws.rows:        print(item)  # 按照行输出        print(item[0].value)  # 输出单元格的值

操作修改单元格数据 获取单元格之后,就可以对其中的值进行操作,例如下述代码

from openpyxl import load_workbookwb = load_workbook('测试表格.xlsx')if __name__ == '__main__':    ws = wb.active    # 输出修改前    for item in ws.rows:        print(item)  # 按照行输出        print(item[0].value)  # 输出单元格的值        item[0].value = 1    # 输出修改后的值,注意不保存文件,数据不会存储    for item in ws.rows:        print(item[0].value)  # 输出单元格的值    # wb.save('example.xlsx')

单元格内容修改完毕之后,需要使用 wb.save() 方法才可以存储文件修改之后的内容。

使用行列式定位单元格 使用工作表的 cell() 方法,可以定位到单元格,具体用法如下所示

from openpyxl import load_workbookwb = load_workbook('测试表格.xlsx')if __name__ == '__main__':    ws = wb.active    # 输出修改前    for item in ws.rows:        print(item)  # 按照行输出        print(item[0].value)  # 输出单元格的值        item[0].value = 1    # 输出修改后的值,注意不保存文件,数据不会存储    for item in ws.rows:        print(item[0].value)  # 输出单元格的值    # 直接定位单元格    c = ws.cell(row=2, column=3)    print(c)    print("单元格A2,B3里面的内容是",c.value)    wb.save('example.xlsx')

6.单元格插入图像

使用如下代码,可以在Excel 中的单元格内添加图片。 在正式编码前,先导入如下模块

from openpyxl.drawing.image import Image

接下来就可以在对应的单元格中去添加相应的图片了,具体代码如下所示,其中比较重要的是 add_image() 方法。

 # 创建图像,参数是图片路径img = Image('cup_PNG2001.png')# add_image(图片,要添加单元格的位置)ws.add_image(img, 'A2')wb.save('example.xlsx')

7.设置单元格样式

在 Excel 中,我们可以针对单元格样式进行操作,例如加粗,倾斜,背景色。

需要提前导入的相关类:

from openpyxl.styles import Font, colors, Alignment

接下来可以修改相应的字体:

from openpyxl import load_workbookfrom openpyxl.styles import Font, colors, Alignmentwb = load_workbook('测试表格.xlsx')if __name__ == '__main__':    ws = wb.active     c_style = Font(size=20, bold=True, italic=True, color='ff0000')    ws['A1'].font = c_style    wb.save('example.xlsx')

运行结果如下所示,注意 A1 单元格相关变化。在这里需要注意代码中只要存在一处错误,新的样式就不会起到作用。

其它内容你可自行进行扩展,例如设置对齐方式

ws['B1'].alignment = Alignment(horizontal='center', vertical='center')

行高,列宽,单元格合并与取消合并,这些内容由你自行完成。

关于"Python怎么用openpyxl模块操作Excel"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Python怎么用openpyxl模块操作Excel"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

单元 表格 对象 输出 数据 文件 方法 测试 代码 内容 模块 属性 名称 接下来 参数 图片 知识 最大 最小 三个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网最新的科技 新华互联网科技学院 互联网科技公司有哪些 新华互联网科技校企合作 滨湖区互联网智能科技产品供应 华中科技有哪些互联网大佬 现代科技和互联网有关系吗 新华互联网科技2019 央行互联网金融科技公司 茂名市互联网科技产业园 成都铂石互联网科技做什么的 南博望互联网科技有限公司 南通创西澳互联网科技有限公司 互联网科技股为什么大涨 上海互联网科技公司ppt 2021世界互联网领先科技成果发布 济南小医互联网科技有限公司招聘 互联网时代科技型公司的机会 绵阳真晨互联网科技有限公司 华人运通互联网科技公司 互联网品科技 智网互联网科技 互联网科技公司的市场部门 互联网企业和科技型企业 互联网科技商业 内蒙古九一互联网科技 威龙国际互联网科技公司 互联网科技如何创业 互联网时代高科技布局 科技互联网企业在行动
0