Excel 的基本对象有工作簿workbook
、工作表worksheet
、行row
、列column
、单元格cell
以及单元格区域range
等;面向对象是软件工程中的重要思想;Python 也是面向对象的编程语言,我们把 Excel 看成一个对象的集合,最基础的对象是单元格cell
,单元格不能再分,单元格有名称(行列),有属性值(内容)等;我们控制 Excel,其实也是将其作为一个对象,来改变它的属性值,达到我们想要的效果;今天我们先来学习,工作表对象worksheet
的操作过程。
01 首先读取或创建 Excel 表格
使用load_workbook()
函数;我们需要先导入load_workbook
;工作表为活动工作表
from openpyxl import load_workbook
# Excel表格与脚本在同一个文件夹,否则需要把路径写全
wb = load_workbook(r'demo.xlsx')
如果我们没有已存在的 Excel 表格,想要新建一个,那么我们需要使用Workbook
类;Workbook
类相当于一个模板,我们使用Workbook()
实例化化一个新的工作表给对象wb
from openpyxl import Workbook
# 实例化新的工作表
wb = Workbook()
# 给新工作簿命名为"demo2"
wb.name = "demo2"
print(wb.name)
# 输出:
# demo2
02 新建工作表并命名
一个工作簿可以有多个工作表,我们可以使用create_sheet()
函数来给我们的工作簿增加新的工作表;使用工作簿的sheetnames
属性来输出我们工作簿的所有工作表名称;
create_sheet(title = None,index = None)
;create_sheet()
有两个参数,第一个是工作表名称,第二个是新建工作表的索引位置
from openpyxl import Workbook
wb = Workbook()
wb.name = "demo2"
ws1 = wb.create_sheet("Mysheet1") # 新建工作表,放在在最末尾
ws2 = wb.create_sheet("Mysheet2", 0) # 新建工作表,放在最开始
ws3 = wb.create_sheet("Mysheet3", -1) # 新建工作表,放在倒数第2个位置
ws = wb.sheetnames
wb.save()
print(ws)
# 输出:
# ['Mysheet2', 'Sheet', 'Mysheet3', 'Mysheet1']
如果要修改工作表名字,则使用对应工作表的title
属性
ws3.title = 'ws300' # 重新命名工作表"Mysheet3"
03 批量新建工作表
即使用for
循环,嵌套create_sheet()
函数即可
from openpyxl import Workbook
wb = Workbook()
for i in range(100):
wb.create_sheet()
ws = wb.sheetnames
wb.save('demo2.xlsx')
print(ws)
04 批量删除工作表
如果想要删除工作表,我们就要使用到工作簿的remove_sheet()
函数,remove_sheet()
需要传入一个参数,即工作表对象,我们使用sheetnames
获取工作表名称,然后通过数组切片[:-2],即从开始到倒数第 2 个为止,然后传入wb[i]
生成对象,再传入remove_sheet()
函数
from openpyxl import Workbook
wb = Workbook()
for i in range(100):
wb.create_sheet()
ws = wb.sheetnames
for i in ws[:-2]:
wb.remove_sheet(wb[i])
ws = wb.sheetnames
wb.save('demo2.xlsx')
print(ws)
今天的教程,主要学习了:如何读取工作簿中的工作表,以及批量新增及删除工作表,大家都学会了吗?