再見VBA,在Excel中直接調(diào)用Python代碼

偶然在知乎上看到一個問題,問能否在excel中調(diào)用python代碼:

覺得很有意思,于是查了一下資料,發(fā)現(xiàn)python的xlwings模塊可以插入excel中,像VBA一樣運行,這對廣大python愛好者來說簡直是福音
下面給大家詳細介紹一下,如何在excel中調(diào)用python代碼
第一步:在excel中加載xlwings模塊
關(guān)于wlxings的使用,前面已經(jīng)發(fā)過,具體參考python自動化辦公|批量處理Excel文件的利器-xlwings,這里不再贅述
首先將xlwings模塊作為excel功能區(qū)的選項卡
依次點擊“文件-選項”,打開如下對話框:

點擊“信任中心-信任中心設(shè)置=宏設(shè)置”,勾選“信任對VBA工程對象模型的訪問”:

點擊功能區(qū)“開發(fā)工具-加載宏”,勾選Xlwings:

如果沒有Xlwings,可以點擊“瀏覽”,選擇xwlings安裝目錄下的xlwings.xlam文件,加載進去就OK了

這時候就能在excel的功能區(qū)看到xlwings模塊了

第二步:導(dǎo)入并調(diào)用python代碼
利用Xlwings模塊的quickstart快速創(chuàng)建帶宏的工作蒲和python代碼文件,具體操作如下。
WIN+R輸入cmd打開命令行,用cd命令切換至你想要的路徑,在路徑下輸入命令“xlwings quickstart table”:

若出現(xiàn)如上信息,表示文件創(chuàng)建成功,可以在文件夾內(nèi)發(fā)現(xiàn)以下文件:

打開table.py文件,可以看到自動生成的python代碼:

內(nèi)有main()和hello()函數(shù),可以實現(xiàn)相應(yīng)的功能
我們打開table.xlsm文件,依次點擊功能區(qū)“xlwings-Import Functions”,等加載完畢,在A1單元格輸入hello()函數(shù):


按回車:

這樣就實現(xiàn)了在excel中調(diào)用python自定義函數(shù)了
第三步:舉一反三
我們再定義一個函數(shù)even_to_odd,可以實現(xiàn)偶數(shù)變奇數(shù),代碼如下:
- @xw.func
- def even_to_odd(x):
- if x%2==0:
- x=x-1
- return x
放入table.py文件中并運行,依次點擊功能區(qū)“xlwings-Import Functions”,等加載完畢,如下輸入even_to_odd()函數(shù):

























