Excel 的基本對(duì)象有工作簿workbook
、工作表worksheet
、行row
、列column
、單元格cell
以及單元格區(qū)域range
等;面向?qū)ο笫擒浖こ讨械闹匾枷?;Python 也是面向?qū)ο蟮木幊陶Z(yǔ)言,我們把 Excel 看成一個(gè)對(duì)象的集合,最基礎(chǔ)的對(duì)象是單元格cell
,單元格不能再分,單元格有名稱(chēng)(行列),有屬性值(內(nèi)容)等;我們控制 Excel,其實(shí)也是將其作為一個(gè)對(duì)象,來(lái)改變它的屬性值,達(dá)到我們想要的效果;今天我們先來(lái)學(xué)習(xí),工作表對(duì)象worksheet
的操作過(guò)程。
01 首先讀取或創(chuàng)建 Excel 表格
使用load_workbook()
函數(shù);我們需要先導(dǎo)入load_workbook
;工作表為活動(dòng)工作表
from openpyxl import load_workbook
# Excel表格與腳本在同一個(gè)文件夾,否則需要把路徑寫(xiě)全
wb = load_workbook(r'demo.xlsx')
如果我們沒(méi)有已存在的 Excel 表格,想要新建一個(gè),那么我們需要使用Workbook
類(lèi);Workbook
類(lèi)相當(dāng)于一個(gè)模板,我們使用Workbook()
實(shí)例化化一個(gè)新的工作表給對(duì)象wb
from openpyxl import Workbook
# 實(shí)例化新的工作表
wb = Workbook()
# 給新工作簿命名為"demo2"
wb.name = "demo2"
print(wb.name)
# 輸出:
# demo2
02 新建工作表并命名
一個(gè)工作簿可以有多個(gè)工作表,我們可以使用create_sheet()
函數(shù)來(lái)給我們的工作簿增加新的工作表;使用工作簿的sheetnames
屬性來(lái)輸出我們工作簿的所有工作表名稱(chēng);
create_sheet(title = None,index = None)
;create_sheet()
有兩個(gè)參數(shù),第一個(gè)是工作表名稱(chēng),第二個(gè)是新建工作表的索引位置
from openpyxl import Workbook
wb = Workbook()
wb.name = "demo2"
ws1 = wb.create_sheet("Mysheet1") # 新建工作表,放在在最末尾
ws2 = wb.create_sheet("Mysheet2", 0) # 新建工作表,放在最開(kāi)始
ws3 = wb.create_sheet("Mysheet3", -1) # 新建工作表,放在倒數(shù)第2個(gè)位置
ws = wb.sheetnames
wb.save()
print(ws)
# 輸出:
# ['Mysheet2', 'Sheet', 'Mysheet3', 'Mysheet1']
如果要修改工作表名字,則使用對(duì)應(yīng)工作表的title
屬性
ws3.title = 'ws300' # 重新命名工作表"Mysheet3"
03 批量新建工作表
即使用for
循環(huán),嵌套create_sheet()
函數(shù)即可
from openpyxl import Workbook
wb = Workbook()
for i in range(100):
wb.create_sheet()
ws = wb.sheetnames
wb.save('demo2.xlsx')
print(ws)
04 批量刪除工作表
如果想要?jiǎng)h除工作表,我們就要使用到工作簿的remove_sheet()
函數(shù),remove_sheet()
需要傳入一個(gè)參數(shù),即工作表對(duì)象,我們使用sheetnames
獲取工作表名稱(chēng),然后通過(guò)數(shù)組切片[:-2],即從開(kāi)始到倒數(shù)第 2 個(gè)為止,然后傳入wb[i]
生成對(duì)象,再傳入remove_sheet()
函數(shù)
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)
今天的教程,主要學(xué)習(xí)了:如何讀取工作簿中的工作表,以及批量新增及刪除工作表,大家都學(xué)會(huì)了嗎?