excel已經(jīng)成為必不可少的數(shù)據(jù)處理軟件隘截,幾乎天天在用扎阶。python有很多支持操作excel的第三方庫(kù),xlwings是其中一個(gè)婶芭。
關(guān)于xlwings
xlwings開(kāi)源免費(fèi)东臀,能夠非常方便的讀寫(xiě)Excel文件中的數(shù)據(jù),并且能夠進(jìn)行單元格格式的修改犀农。
xlwings還可以和matplotlib啡邑、numpy以及pandas無(wú)縫連接,支持讀寫(xiě)numpy井赌、pandas數(shù)據(jù)類(lèi)型谤逼,將matplotlib可視化圖表導(dǎo)入到excel中。
最重要的是xlwings可以調(diào)用Excel文件中VBA寫(xiě)好的程序仇穗,也可以讓VBA調(diào)用用Python寫(xiě)的程序流部。
xlwings安裝和導(dǎo)入
本文python版本為3.6,系統(tǒng)環(huán)境為windows纹坐,在jupyter notebook中進(jìn)行實(shí)驗(yàn)枝冀。
xlwings庫(kù)使用pip安裝:
pipinstall xlwings
xlwings導(dǎo)入:
importxlwingsasxw
xlwings實(shí)操
建立excel表連接
wb= xw.Book("e:\example.xlsx")
實(shí)例化工作表對(duì)象
sht= wb.sheets["sheet1"]
返回工作表絕對(duì)路徑
wb.fullname
在單元格中寫(xiě)入數(shù)據(jù)
sht.range('A1').value="xlwings"
讀取單元格內(nèi)容
sht.range('A1').value
清除單元格內(nèi)容和格式
sht.range('A1').clear()
獲取單元格的列標(biāo)
sht.range('A1').column
獲取單元格的行標(biāo)
sht.range('A1').row
獲取單元格的行高
sht.range('A1').row_height
獲取單元格的行高
sht.range('A1').row_height
xlwings與numpy、pandas耘子、matplotlib互動(dòng)
支持寫(xiě)入numpy array數(shù)據(jù)類(lèi)型
importnumpyasnpimportnumpyasnp
支持將pandas DataFrame數(shù)據(jù)類(lèi)型寫(xiě)入excel
import pandas as pddf = pd.DataFrame([[1,2], [3,4]], columns=['a','b'])sht.range('A5').value = df
xlwings與VBA互相調(diào)用
xlwings與VBA的配合非常完美果漾,你可以在python中調(diào)用VBA,也可以在VBA中使用python編程谷誓,這些通過(guò)xlwings都可以巧妙實(shí)現(xiàn)绒障。這里不對(duì)該內(nèi)容做詳細(xì)講解,感興趣的童鞋可以去xlwings官網(wǎng)學(xué)習(xí)捍歪。
總結(jié)
xlwings操作excel語(yǔ)法簡(jiǎn)單户辱,功能強(qiáng)大,又很好結(jié)合了pandas糙臼、numpy庐镐、matplotlib等分析庫(kù),非常適合奔波于python和excel之間的童鞋变逃,讓你更輕松地分析數(shù)據(jù)必逆!