Python提取 Excel內(nèi)容,這個需求頭一次見,千個表,十行代碼
本文介紹
說實話,這個需求頭一次碰到,我相信對于大多數(shù)朋友來說,也是頭一次碰到。“提取excel文本框中的內(nèi)容”,對,你沒有聽錯!我也不知道你碰到過沒有,但是這確實是一位朋友提出的很好的問題。
說實話,Python操作excel的庫很多,但是我?guī)缀鯖]有找到實現(xiàn)這個需求的api。比如說,我最常使用的openpyxl庫,也沒有這個功能。
最后查閱一番,只有xlwings這個庫了!注意:這個庫是第三方庫,大家一定要提前安裝,并且一定要使用最新版本!最新版本!最新版本!不然有些方法你無法使用。
- # 打開cmd窗口,安裝xlwings庫
- pip install xlwings
- # 使用xlwings庫之前,需要提前導(dǎo)入
- import xlwings as xw
xlwings庫相關(guān)知識
首先,咱們看到的的xw.App()是xlwings庫中的一個函數(shù)。
- xw.App(visible=False,add_book=False)
其中:
- visible: True表示啟動excel程序后顯示程序窗口。如果為False,表示啟動excel程序后,程序窗口在后臺運(yùn)行;
- add_book: True表示啟動excel程序后,新建一個空白工作簿。如果為False,表示啟動excel程序后,不新建工作簿;
app.books.open(文件路徑)
上述函數(shù)用于幫助我們打開工作簿,里面有一個參數(shù),傳入本地excel的路徑,用于打開本地的工作簿。
完整代碼
因為這篇文章,只是簡單介紹了xlwings庫的相關(guān)使用,有些屬性和方法類似于openpyxl,這里我就不詳細(xì)介紹了。Excel文本框中內(nèi)容如下:
直接上代碼:
- import xlwings as xw
- app = xw.App(visible=False,add_book=False)
- wb = app.books.open('test1.xlsx')
- for sheet in wb.sheets:
- for shape in sheet.shapes:
- if "TextBox" in shape.name:
- print(shape.text) # 一定要xlwings最新版本,老版本沒有text方法
- wb.close()
- app.quit()
結(jié)果如下:
當(dāng)然,這是針對某一個表,掌握了方法,給你多個表,不就是循環(huán)讀取就行嗎?
1000個表,自己可以下去嘗試一下哦!