遇見(jiàn) xlwings, 讓你的 Excel 飛起來(lái)

Pandas的read_excel()與to_excel()實(shí)際上就是讀寫(xiě)有格式的文本文件蚂夕,操作excel文件和操作text、csv文件沒(méi)有區(qū)別濒蒋,Excel文件只是用來(lái)儲(chǔ)存數(shù)據(jù)。但除了操作數(shù)據(jù),其實(shí)我們還可以利用Python調(diào)整Excel文件的表格寬度蹦掐、字體顏色等。

遇見(jiàn) xlwings

xlwings是一個(gè)Python庫(kù)僵闯,它使Python的一些數(shù)據(jù)分析特性可以在Excel實(shí)例中使用卧抗,包括對(duì)numpy數(shù)組、pandas Series和DataFrame的支持棍厂。與其他任何Python庫(kù)一樣颗味,我們可以使用pip或conda等常用方法來(lái)安裝它,但是如果您需要更多詳細(xì)信息牺弹,您可以在這里訪(fǎng)問(wèn)xlwings的文檔浦马。(地址:https://docs.xlwings.org/en/stable/installation.html

xlwings的特色

  • xlwings能夠非常方便的讀寫(xiě)Excel文件中的數(shù)據(jù),并且能夠進(jìn)行單元格格式的修改
  • 可以和matplotlib以及pandas無(wú)縫連接
  • 可以調(diào)用Excel文件中VBA寫(xiě)好的程序张漂,也可以讓VBA調(diào)用用Python寫(xiě)的程序晶默。
  • 開(kāi)源免費(fèi),一直在更新

xlwings的安裝

如果安裝了Anaconda航攒,而且Python版本為3.5或3.5以上磺陡,那么恭喜你xlwings就已經(jīng)可用了。

conda install xlwings

xlwings的使用

  • xlwings 打開(kāi)-新建
import time
import xlwings as xw

"""
visible
Ture:可見(jiàn)excel
False:不可見(jiàn)excel

add_book
True:打開(kāi)excel并且新建工作簿
False:不新建工作簿
"""
app = xw.App(visible=True, add_book=False)

wb = app.books.open('./a.xlsx')
wb2 = app.books.open("./b.xlsx")

# 打印當(dāng)前活躍的books-<Book [b.xlsx]>
print(app.books.active)

# 打印當(dāng)前的book-Books([<Book [a.xlsx]>, <Book [b.xlsx]>])
print(app.books)

wb.save()

# 關(guān)閉a.xlsx文件-指定操作的excel
# wb.close()
app.books[0].close()

time.sleep(3)
app.quit()

  • 新建excel文件
import xlwings as xw

app = xw.App(visible=True, add_book=False)

# 添加一個(gè)新的工作薄
wb = app.books.add()

# 保存文件
wb.save('./c.xlsx')
wb.close()
app.quit()
  • xlwings sheet操作
 #新建sheet
wb.sheets.add("sheet2")

 #刪除sheet
wb.sheets["sheet2"].delete()

#查看當(dāng)前表格名
wb.sheets[1].name 

#清空整張表格的內(nèi)容和格式
wb.sheets[1].clear() 

# 查看當(dāng)前活躍的sheet
wb.sheets.active
sh = wb.sheets.active
sh.range("A1").value="A1"

# 激活指定的sheet
wb.sheets["sheet1"].activate()
  • xlwings 操作數(shù)據(jù)
    引用單元格
    import xlwings as xw
    import time
    
    app = xw.App(visible=True, add_book=False)
    wb = app.books.open("./a.xlsx")
    sht = wb.sheets["sheet1"]
    # TODO 待輸入-見(jiàn)下面示例
    
    # A1 單元格
    wb.sheets["sheet1"].range("A1")
    
    # A2 單元格
    sht.range("A2")
    
    # A3單元格-xw-當(dāng)前活躍的app-book-sheet
    xw.Range("A3")
    
    # A4單元格
    rng_a4 = sht["A4"]
    
    # A1:B3 單元格
    rng_a1_b3 = sht["A1:B3"]
    rng_a1_b3_2 = sht.range("A1:B3")
    xw.Range((1, 1), (3, 2))
    
    # C1單元格
    rng_c1 = sht[0, 2]
    
    time.sleep(3)
    wb.save()
    wb.close()
    app.quit()
    
    
    單個(gè)單元格寫(xiě)入數(shù)據(jù)
    sht.range("A1").value="A1"
    
    輸入多個(gè)數(shù)據(jù)到行
    sht.range("A2").value=[1,2] # 在A(yíng)2輸入1,B2輸入2
    
    輸入多個(gè)數(shù)據(jù)到列
    sht.range("A3").options(transpose=True).value = ["A", "B", "C"]
    
    輸入表格
    sht.range('A4').options(expand='table').value = [[1, 2], [3, 4]]
    sht.range("A4:B5").value = [[1, 2], [3, 4]]
    
    xlwings 讀取數(shù)據(jù)
    sht.range("A1").value
    sht.range("A1:A3").value
    sht.range("A1:B3").value
    xw.Range("A1").value
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末漠畜,一起剝皮案震驚了整個(gè)濱河市币他,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌憔狞,老刑警劉巖蝴悉,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異瘾敢,居然都是意外死亡拍冠,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)簇抵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)庆杜,“玉大人,你說(shuō)我怎么就攤上這事碟摆』尾疲” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵典蜕,是天一觀(guān)的道長(zhǎng)拓劝。 經(jīng)常有香客問(wèn)我雏逾,道長(zhǎng),這世上最難降的妖魔是什么郑临? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任栖博,我火速辦了婚禮,結(jié)果婚禮上厢洞,老公的妹妹穿的比我還像新娘仇让。我一直安慰自己,他們只是感情好躺翻,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布丧叽。 她就那樣靜靜地躺著,像睡著了一般公你。 火紅的嫁衣襯著肌膚如雪踊淳。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,785評(píng)論 1 314
  • 那天陕靠,我揣著相機(jī)與錄音迂尝,去河邊找鬼。 笑死剪芥,一個(gè)胖子當(dāng)著我的面吹牛垄开,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播税肪,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼溉躲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了益兄?” 一聲冷哼從身側(cè)響起锻梳,我...
    開(kāi)封第一講書(shū)人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎净捅,沒(méi)想到半個(gè)月后疑枯,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡灸叼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年神汹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了庆捺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片古今。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖滔以,靈堂內(nèi)的尸體忽然破棺而出捉腥,到底是詐尸還是另有隱情,我是刑警寧澤你画,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布抵碟,位于F島的核電站桃漾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拟逮。R本人自食惡果不足惜撬统,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望敦迄。 院中可真熱鬧恋追,春花似錦、人聲如沸罚屋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)脾猛。三九已至撕彤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間猛拴,已是汗流浹背羹铅。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留漆弄,地道東北人睦裳。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像撼唾,于是被迫代替她去往敵國(guó)和親廉邑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361