【劇情回顧】
-
xlwings基本對象
App相當(dāng)于Excel程序,Book相當(dāng)于工作簿惠况。N個Excel程序則由apps表示遭庶,N個工作簿由books表示。
- 對工作簿的操作
#導(dǎo)入xlwings模塊
import xlwings as xw
#新建工作簿稠屠,這里默認為新建了一個App峦睡,即打開Excel程序,并新建一個工作簿
xw.Book()
#引用工作簿
xw.Book('工作簿3')
# 引用工作簿也可以用books
xw.books['工作簿3’]
#打開已有工作簿
xw.Book(r'e:\myworkbook.xlsx')
- 對sheet以及Range的操作
import xlwings as xw
wb=xw.Book()
# 引用名字為"sheet2"的sheet
sht=wb.sheets['sheet2']
# 引用"sheet2"中的B1單元格
rng=sht.range('B1')
# 將B1單元格的值改為666
rng.value=666
數(shù)據(jù)結(jié)構(gòu)
- 一維數(shù)據(jù)
python的列表权埠,可以和Excel中的行列進行數(shù)據(jù)交換榨了,python中的一維列表,在Excel中默認為一行數(shù)據(jù)
import xlwings as xw
sht=xw.sheets.active
# 將1攘蔽,2龙屉,3分別寫入了A1,B1秩彤,C1單元格中
sht.range('A1').value=[1,2,3]
# 將A1叔扼,B1,C1單元格的值存入list1列表中
list1=sht.range('A1:C1').value
# 將1漫雷,2瓜富,3分別寫入了A1,A2降盹,A3單元格中
sht.range('A1').options(transpose=True).value=[1,2,3]
# 將A1与柑,A2,A3單元格中值存入list1列表中
list1=sht.range('A1:A3').value
- 二維數(shù)據(jù)
python的二維列表蓄坏,可以轉(zhuǎn)換為Excel中的行列价捧。二維列表,即列表中的元素還是列表涡戳。在Excel中结蟋,二維列表中的列表元素,代表Excel表格中的一列渔彰。例如:
# 將a1,a2,a3輸入第一列嵌屎,b1,b2,b3輸入第二列
list1=[[‘a(chǎn)1’,'a2','a3'],['b1','b2','b3']]
sht.range('A1').value=list1
# 將A1:B3的值賦給二維列表list1
list1=sht.range('A1:B3‘).value
- Excel中區(qū)域的選取表格
# 選取第一列
rng=sht. range('A1').expand('down')
rng.value=['a1','a2','a3']
# 選取第一行
rng=sht.range('A1').expand('right')
rng=['a1','b1']
# 選取表格
rng.sht.range('A1').expand('table')
rng.value=[[‘a(chǎn)1’,'a2','a3'],['b1','b2','b3']]
結(jié)束
- 本文首先簡單介紹了,通過Python運用xlwings模塊恍涂,對Excel工作簿宝惰、工作表和單元格的操作。
- 再介紹了xlwings再沧,如何對Excel表格的行和列寫入和引用數(shù)據(jù)
- 通過二維或者一維列表對Excel工作表的數(shù)據(jù)進行寫入或者引用尼夺,既簡化了代碼,也提高了程序的效率。因為python讀寫Excel表格的速度淤堵,原小于python程序自身的運行速度寝衫。
參考資料
xlwings官網(wǎng)
插上翅膀,讓Excel飛起來——xlwings(一)
插上翅膀粘勒,讓Excel飛起來——xlwings(二)