openpyxl模块是一个读写Excel的python库,是一个比较综合的工具,能够同时读取和修改Excel文档。
1.安装模块
pip3 install openpyxl
2.基本用法
了解Excel 基本概念,Excel中列以字幕命名,行以数字命名,比如左上角第一个单元格的坐标为A1,下面的为A2,右边的B1。
openpyxl中有三个不同层次的类:
- Workbook是一个excel工作表
- Worksheet是工作表中的一张表页
- Cell就是一个格
每一个类都包含了许多属性和方法
3.操作Excel的一般场景
- 打开或者创建一个Excel需要创建一个Workbook对象
- 获取一个表则需要先创建一个Workbook对象,然后使用该对象的方法来得到一个Worksheet对象
- 获取一个表则需要先创建一个Workbook对象,然后使用该对象的方法来得到一个Worksheet对象
4.Workbook对象
一个Workbook对象代表一个Excel文档,因此在操作Excel之前,都应该先创建一个Workbook对象。
对于创建一个新的Excel文档,直接进行Workbook类的调用即可,对于一个已经存在的Excel文档,可以使用openpyxl模块的load_workbook函数进行读取,该函数包涵多个参数,但只有filename参数为必传参数。
filename 是一个文件名,也可以是一个打开的文件对象。
import openpyxl
excel = openpyxl.load_workbook("aaa.xlsx")
Workbook和load_workbook相同,返回的都是一个Workbook对象。
Workbook对象提供了很多属性和方法,其中,大部分方法都与sheet有关,部分属性如下:
- active:获取当前活跃的Worksheet
- worksheets:以列表的形式返回所有的Worksheet(表格)
- read_only:判断是否以read_only模式打开Excel文档
- encoding:获取文档的字符集编码
- properties:获取文档的元数据,如标题,创建者,创建日期等
- sheetnames:获取工作簿中的表(列表)
5.写入xlsx
from openpyxl import Workbook
# 创建一个excel
wb = Workbook()
# 创建一个工作表
sheet = wb.active
# 给工作表改名
sheet.title = "New Shit"
# C3位置添加数据
sheet['C3'] = 'Hello world!'
# 循环将A1-10添加数据1-10
for i in range(10):
sheet["A%d" % (i+1)].value = i+1
# 保存xlsx
wb.save("new.xlsx")
6.操作数据
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# 创建新的工作表
ws1 = wb.create_sheet("MySheet")
ws2 = wb.create_sheet("MySheet", 0)
ws.title = "New Title"
# 改变选项卡标题的背景颜色
ws.sheet_properties.tabColor = '1072BA'
# 将ws设置为关键工作表
ws3 = wb["New Title"]
# 所有工作表的名称
print(wb.sheetnames)
wb.get_sheet_by_name('New Title')
需要写成:
ws4 = wb['New Title']