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 Workbookwb = Workbook()wb.name = "demo2"ws1 = wb.create_sheet("Mysheet1") # 新建工作表,放在在最末尾ws2 = wb.create_sheet("Mysheet2", 0) # 新建工作表,放在最开始ws3 = wb.create_sheet("Mysheet3", -1) # 新建工作表,放在倒数第2个位置ws = wb.sheetnameswb.save()print(ws)# 输出:# ['Mysheet2', 'Sheet', 'Mysheet3', 'Mysheet1']
如果要修改工作表名字,则使用对应工作表的title属性
ws3.title = 'ws300' # 重新命名工作表"Mysheet3"
03 批量新建工作表
即使用for循环,嵌套create_sheet()函数即可
from openpyxl import Workbookwb = Workbook()for i in range(100): wb.create_sheet()ws = wb.sheetnameswb.save('demo2.xlsx')print(ws)
04 批量删除工作表
如果想要删除工作表,我们就要使用到工作簿的remove_sheet()函数,remove_sheet()需要传入一个参数,即工作表对象,我们使用sheetnames获取工作表名称,然后通过数组切片[:-2],即从开始到倒数第 2 个为止,然后传入wb[i]生成对象,再传入remove_sheet()函数
from openpyxl import Workbookwb = Workbook()for i in range(100): wb.create_sheet()ws = wb.sheetnamesfor i in ws[:-2]: wb.remove_sheet(wb[i])ws = wb.sheetnameswb.save('demo2.xlsx')print(ws)
今天的教程,主要学习了:如何读取工作簿中的工作表,以及批量新增及删除工作表,大家都学会了吗?