1 前言最近需要频繁读写 Excel 文件,想通过程序对 excel 文件进行自动化处理,发现使用 Python 的 openpyxl 库进行 excel 文件读写实在太方便了,结构清晰,操作简单 。本文对 openpyxl 的使用进行总结,主要包含以下内容:
- openpyxl 的介绍及 excel 文件结构说明
- 工作表的读写处理
- 行列的读写处理
- 单元格的读写处理

文章插图
2 openpyxl 及 excel 文件结构openpyxl 是一个对 xlsx/xlsm/xltx/xltm 格式的 2010 excel 文档进行读写的 python 库 。它官网有详细的文档介绍 。在进行使用前,需先安装并引入
# 安装pip install openpyxl# 引入openpyxl 模块import openpyxl复制代码在进行 excel 操作之前,先对 excel 的文件结构做一个简单了解,以便于熟悉后续的操作 。这里说一句,小编是一名python开发工程师,我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等 。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取 。非诚勿扰!
如下图:

文章插图
一个 excel 文件,其内容按层次分为工作簿(文件) -> 工作表(sheet) -> 行列 -> 单元格,对应上图,整个 excel 文件即是一个工作簿;工作簿下可以有多个工作表(如图中的 Sheet1/test1 等等);工作表中就是对应的表格数据,分为行和列,行是用序号表示,列用大写字母表示(也可用序号);行与列的交点就是每一个存储数据的单元格 。因此,我们对 excel 表格进行读写,基本按这个层次思路来操作:读入文件,找到工作表,遍历行列,定位单元格,对单元格进行读写 。因此,会涉及到工作表、行列、单元格的读写操作 。这些操作之前,需要先把文件加载进来,一个 excel 文件就是一个工作簿 (workbook),加载操作如下(示例中的 excel 文件为 text.xlsx):
# 加载excel文件file_path = "E:/pythontest/test.xlsx"workbook = openpyxl.load_workbook(file_path)复制代码3 工作表处理3.1 工作表读取工作表( sheet )会有多个,可以读取全部的工作表,读取单个时,可以按 sheet 名称读取,也可以按下标(下标从0开始) 。- 全部工作表对象:workbook.worksheets
- 全部工作表名称:workbook.sheetnames
- 按名称(sheet_name)获取工作表:workbook[sheet_name]
- 按下标(i从0开始)获取工作表:workbook.worksheets[i]
- 获取正在使用的工作表:workbook.active
- 获取工作表的属性(如工作表名称、最大行数和列数等):sheet.title、sheet.max_row、sheet.max_column

文章插图
如下:
# 全部sheet对象>>> workbook.worksheets[<Worksheet "Sheet1">, <Worksheet "test1">, <Worksheet "test2">]# 全部sheet名称>>> workbook.sheetnames['Sheet1', 'test1', 'test2']# 按名称读取sheet>>> workbook["Sheet1"]<Worksheet "Sheet1"># 按下标读取>>> workbook.worksheets[0]<Worksheet "Sheet1"># 获取当前正在使用的sheet>>> workbook.active<Worksheet "Sheet1"># 获取sheet的属性>>> sheet_active.titleSheet1>>> sheet_active.max_row6>>> sheet_active.max_column3复制代码3.2 工作表添加若需要新增工作表,按操作流程,先添加工作表,再保存文件 。创建通过create_sheet完成,创建后保存(save)文件,添加才能生效 。- 创建工作表,若名称相同,则自动进行重命名:workbook.create_sheet("test3")
- 在指定的下标创建工作表:workbook.create_sheet("test4",1)
- 保存文件,若文件路径与打开的文件路径相同,则覆盖;不同,则会复制原文件并保存(相当于另存为):workbook.save(file_path)
# 修改工作表名称>>> sheet1 = workbook['test1']>>> sheet1.title = 'test11'# 保存文件>>> workbook.save(file_path)复制代码3.4 工作表删除删除工作表,需要先获取 sheet 对象,然后删除 。删除有两种方式,一是使用 workbook 提供的 remove 方法,也可以直接使用 python 的del进行删除 。删除操作后,同样需要保存文件:
推荐阅读
- 你会做工资条吗?不用函数公式的那种,超简单
- 品牌机限定应用,普通 Windows 也能随意装
- 拒做PB Boy!教你巧用 Protobuf 反射来优化代码
- 使用Docker镜像
- 什么是PE系统?建议有电脑的同志用U盘做一个备用
- 搞懂Android应用启动过程,再也不怕面试官了
- 白雪莲茶的功效和功能,白茶的保健功效作用
- 白牡丹茶味道怎么样,白牡丹功效及作用介绍
- 如何在前端项目中将敏感数据信息脱敏处理?
- 本草茶丰胸是真的吗,红枣丰胸茶管用吗
