xlwings:操作Excel,通過宏調用Pyhton(VBA調Python)

這裏補一段xlwings的安裝方式(更簡單,如果有效的話,但不確定是否有效,慎重!)

1. 先卸載掉原來可能存在的xlwings

pip uninstall xlwings

conda uninstall xlwings

2. 下載安裝xlwings

pip install xlwings

(如果有離線安裝包,就進去,有個setup.py的文件

python setup.py install)

3. 再安裝excel插件

xlwings addin install

 

---------------

 

xlwings - 讓Excel飛起來

 

說明:我的xlwings版本是0.11.5。老一點的版本可能需要經過額外的設置,其excel插件才能用。

 

xlwings是一個python的庫,支持從Excel調用Python,也支持通過Python去操作Excel。

官方說明、網上的文章已經有很多了。

官方網站:xlwings官網

文檔鏈接:xlwings文檔

 

這裏總結如何從Excel通過加一個Macro(宏),點擊一個按鈕來調用Python,從而實現對Excel的操作。

需求:通過點擊Excel中的一個按鈕,通過VBA調用Python代碼,實現對Excel的操作。

我的環境:Win 10 64位,Excel 2016, Python 3.6(我安裝的是Anaconda 3,64 位,有pip工具)

案例:點擊一個按鈕,單元格A1中出現Hello,world!

效果圖

 

基本流程

假設我的py代碼都寫好了(後面當然要用)

# -*- coding: utf-8 -*-

import xlwings as xw


def say_hi():
    
    wb = xw.Book.caller()
    sht = wb.sheets[0]
    sht.range('A1').value = 'Hello, world'

 

1. Excel,開啓對宏(macro)的支持。

 

2. Excel,顯示開發工具選項卡。

3. Excel,保存爲啓用宏的工作簿。

4. 安裝xlwings,並測試安裝成功。

5. Excel,顯示xlwings選項卡,這樣纔可以在Excel中通過VBA執行py和用戶自定義函數(UDF)。

6. 配置python編譯器路徑,以及執行的py文件路徑

7. 在VBA中,寫一個宏(執行py文件的say_hi函數)。插入按鈕,並綁定該宏

 

1. 開啓宏支持

Excel 文件 - 選項 - 信任中心 - 宏設置 - 啓用所有宏

 

2. 顯示“開發工具”選項卡

Excel選項 - 自定義功能區 - 開發工具(勾選)

至此,出現了開發工具的選項卡。

 

3. 保存爲啓用宏的工作簿 (*.xlsm)

 

4. 安裝xlwings,並測試安裝成功

 

5. 讓Excel顯示xlwings選項卡

Excel - 開發工具 - 查看代碼,打開 VBA

工具 - 引用,勾選xlwings

注意:你會發現,根本就沒有xlwings這個選項。

找到xlwings的addin文件夾,打開xlwings.xlam文件,自然就出現了xlwings選項卡了。

此時再勾選xlwings。

勾選RunPython: Use UDF Server

這樣一旦執行py的話,會啓一個黑窗口,此後執行py速度要比不勾選快

應該是不需要每次運行的時候都加載py文件了

但是這樣的話,修改了py文件,需要把黑窗口關掉,重新導入

其實感覺就相當於是Debug模式還是Release模式

再到VBA中對勾選xlwings的支持。

6. 配置編譯器路徑,需要執行的py文件路徑

interpreter:編譯器,找到python.exe(我的是anaconda 3, 一步到位)

PYTHONPATH:py文件路徑

7. 寫宏,插入按鈕,綁定宏

Sub hi()

    RunPython ("from xw import say_hi; say_hi()")

End Sub

 

 

開發工具 - 插入 - 表單控件(按鈕)

編輯文字,指定宏

最後,點擊按鈕,Done!

發佈了266 篇原創文章 · 獲贊 252 · 訪問量 84萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章