1 安装openpyxl
Windows用户打开命令行输入:pip install openpyxl
Mac用户打开终端/Terminal输入:pip3 install openpyxl
2 创建新的表格
2.1 创建一个工作簿
from openpyxl import Workbook # 引入openpyxl模块,可以创建xls或者xlsx文件
from openpyxl import Workbook
workbook = Workbook()
sheet = workbook.active
sheet.title = '表格1'
workbook.save(filename='写入表格.xlsx')
2.2 对表格对象的一些操作
2.2.1 新建工作表
create_sheet()方法返回一个新的表格对象
index和title参数,指定新工作表的索引及名称
from openpyxl import load_workbook
workbook = load_workbook(filename="写入表格.xlsx")
sheet = workbook.active
# 使用工作簿对象创建一个新的表格,表格名称为表格2
workbook.create_sheet(index=None,title='表格2')
print(workbook.sheetnames)
index
:整数类型,设置新工作表索引,默认为None即放在最后,如果设置为0,则表格放置在最前。
title
:字符串类型,设置新工作表名称,如果新工作表名称已存在,新工作表名称会自动变为title1。
2.2.2 删除工作表
remove()方法中接收一个表格对象而不是表格名称的字符串。需要具象化表名。
from openpyxl import load_workbook
workbook = load_workbook(filename="写入表格.xlsx")
sheet = workbook['表格2']
workbook.remove(sheet)
# workbook.remove(workbook['表格2'])
print(workbook.sheetnames)
workbook.save(filename='写入表格.xlsx')
2.2.3 复制工作表
workbook.copy_worksheet(sheet)
from openpyxl import load_workbook
workbook = load_workbook(filename="写入表格.xlsx")
sheet = workbook.active
sheet = workbook['表格1']
workbook.copy_worksheet(sheet)
print(workbook.sheetnames)
workbook.save(filename='写入表格.xlsx')
2.2.4 修改工作表名
sheet.title = ‘工作表名’
from openpyxl import load_workbook
workbook = load_workbook(filename="写入表格.xlsx")
sheet = workbook.active
sheet = workbook['表格1 Copy']
sheet.title = '表格3'
print(workbook.sheetnames)
workbook.save(filename='写入表格.xlsx')
3 读取表格内容
3.1 获取工作簿对象
openpyxl.load_workbook()方法可以接收多个参数进行读取
from openpyxl import load_workbook
wb = openpyxl.load_workbook(filename='写入表格.xlsx', read_only=False, keep_vba=False, data_only=False, keep_links=True)
print(wb.sheetnames)
filename
:字符串类型,读取Excel文件的文件路径,可使用相对路径或是绝对路径。
read_only
:布尔类型,选择只读模式或是读写模式,若想写入公式及重新获取结果,需要用将这个模式关闭。默认为False。
keep_vba
:布尔类型,保留vba内容(这并不意味着可以使用它),默认为False。
data_only
:布尔类型,如果设置为True则包含公式的单元格,显示最近计算结果或是None,如果设置为False 则单元格显示公式,默认为False。
keep_links
:布尔类型,是否保留指向外部工作簿的链接。默认为True。
3.2 获取工作表对象
3.2.1 获取工作薄所有工作表名称
load_workbook(filename=“表格文件路径”) #若是绝对路径直接写文件名。
sheetnames属性可以取得工作簿中所有表名,返回为一个列表。
from openpyxl import load_workbook
fileName = "写入表格.xlsx"
wb = load_workbook(filename = fileName)
print(wb.sheetnames)
3.2.2 选中需要操作的工作表
sheet = wb.active # 获取工作簿中的当前活动表
sheet = wb[‘工作表名称’] # 通过工作表名称选中的工作表
sheet.title # 获取活动表的表名称
# 获取上次关闭表格前激活的表格名称
from openpyxl import load_workbook
fileName = "写入表格.xlsx"
wb = load_workbook(filename = fileName)
sheet = wb.active
print(sheet.title)
# 获取特定表的表名称
from openpyxl import load_workbook
fileName = "写入表格.xlsx"
wb = load_workbook(filename = fileName)
sheet = wb['Sheet2']
print(sheet.title)
3.2.3 获取表格范围
获取表格:workbook[sheet名称]
获取表格的尺寸大小:sheet.dimensions(表格存在数据的大小)
单独获取最大行:sheet.max_row
单独获取最大列:sheet.max_column
from openpyxl import load_workbook
workbook = load_workbook(filename="46
sheet = workbook['Booklist 12-26']
print("表格范围是:",sheet.dimensions)
print("最大行数是:", sheet.max_row)
print("最大列数是:", sheet.max_column)
输出结果:
表格范围是: A1:E4693
最大行数是: 4693
最大列数是: 5
3.3 获取单元格对象
3.3.1 获取单元格的某些属性
.row 行数
.column 列数
.coordinate 坐标
from openpyxl import load_workbook
workbook = load_workbook(filename="4600本书单名.xlsx")
sheet = workbook.active
cell = sheet['A5']
print("单元格的行号: