日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】如何在Excel中调用Python脚本,实现数据自动化处理

發布時間:2025/3/12 python 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】如何在Excel中调用Python脚本,实现数据自动化处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這次我們會介紹如何使用xlwings將Python和Excel兩大數據工具進行集成,更便捷地處理日常工作。

說起Excel,那絕對是數據處理領域王者般的存在,盡管已經誕生三十多年了,現在全球仍有7.5億忠實用戶,而作為網紅語言的Python,也僅僅只有700萬的開發人員。

Excel是全世界最流行的編程語言。對,你沒看錯,自從微軟引入了LAMBDA定義函數后,Excel已經可以實現編程語言的算法,因此它是具備圖靈完備性的,和JavaScript、Java、Python一樣。

雖然Excel對小規模數據場景來說是剛需利器,但它面對大數據時就會有些力不從心。

我們知道一張Excel表最多能顯示1048576行和16384列,處理一張幾十萬行的表可能就會有些卡頓,當然你可以使用VBA進行數據處理,也可以使用Python來操作Excel。

這就是本文要講到的主題,Python的第三方庫-xlwings,它作為Python和Excel的交互工具,讓你可以輕松地通過VBA來調用Python腳本,實現復雜的數據分析。

比如說自動導入數據:

或者隨機匹配文本:

一、為什么將Python與Excel VBA集成?

VBA作為Excel內置的宏語言,幾乎可以做任何事情,包括自動化、數據處理、分析建模等等,那為什么要用Python來集成Excel VBA呢?主要有以下三點理由:

  • 如果你對VBA不算精通,你可以直接使用Python編寫分析函數用于Excel運算,而無需使用VBA;

    • Python相比VBA運行速度更快,且代碼編寫更簡潔靈活;

    • Python中有眾多優秀的第三方庫,隨用隨取,可以節省大量代碼時間;

    • 對于Python愛好者來說,pandas、numpy等數據科學庫用起來可能已經非常熟悉,如果能將它們用于Excel數據分析中,那將是如虎添翼。

      二、為什么使用xlwings?

      Python中有很多庫可以操作Excel,像xlsxwriter、openpyxl、pandas、xlwings等。

      但相比其他庫,xlwings性能綜合來看幾乎是最優秀的,而且xlwings可以實現通過Excel宏調用Python代碼。

      圖片來自早起Python

      xlwings的入門使用這里不多做講解,如果大家還不了解,先看看我之前寫的入門介紹:xlwings,讓excel飛起來!

      安裝xlwings非常簡單,在命令行通過pip實現快速安裝:

      pip?install?python

      安裝好xlwings后,接下來需要安裝xlwings的 Excel集成插件,安裝之前需要關閉所有 Excel 應用,不然會報錯。

      同樣在命令行輸入以下命令:

      xlwings?addin?install

      出現下面提示代表集成插件安裝成功。

      xlwings和插件都安裝好后,這時候打開Excel,會發現工具欄出現一個xlwings的菜單框,代表xlwings插件安裝成功,它起到一個橋梁的作用,為VBA調用Python腳本牽線搭橋。

      另外,如果你的菜單欄還沒有顯示“開發工具”,那需要把“開發工具”添加到功能區,因為我們要用到宏。

      步驟很簡單:

      1、在"文件"選項卡上,轉到"自定義>選項"。

      2、在“自定義功能區”和“主選項卡”下,選中“開發工具”復選框。

      菜單欄顯示開發工具,就可以開始使用宏。

      如果你還不知道什么是宏,可以暫且把它理解成實現自動化及批量處理的工具。

      到這一步,前期的準備工作就完成了,接下來就是實戰!

      三、玩轉xlwings

      要想在excel中調用python腳本,需要寫VBA程序來實現,但對于不懂VBA的小伙伴來說就是個麻煩事。

      但xlwings解決了這個問題,不需要你寫VBA代碼就能直接在excel中調用python腳本,并將結果輸出到excel表中。

      xlwings會幫助你創建.xlsm和.py兩個文件,在.py文件里寫python代碼,在.xlsm文件里點擊執行,就完成了excel與python的交互。

      怎么創建這兩個文件呢?非常簡單,直接在命令行輸入以下代碼即可:

      xlwings?quickstart?ProjectName

      這里的ProjectName可以自定義,是創建后文件的名字。

      如果你想把文件創建到指定文件夾里,需要提前將命令行導航到指定目錄。

      創建好后,在指定文件夾里會出現兩個文件,就是之前說的.xlsm和.py文件。

      我們打開.xlsm文件,這是一個excel宏文件,xlwings已經提前幫你寫好了調用Python的VBA代碼。

      按快捷鍵Alt + F11,就能調出VBA編輯器。

      Sub SampleCall()mymodule = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))RunPython "import " & mymodule & ";" & mymodule & ".main()" End Sub

      里面這串代碼主要執行兩個步驟:

      1、在.xlsm文件相同位置查找相同名稱的.py文件?

      2、調用.py腳本里的main()函數

      我們先來看一個簡單的例子,自動在excel表里輸入['a','b','c','d','e']

      第一步:我們把.py文件里的代碼改成以下形式。

      import?xlwings?as?xw import?pandas?as?pddef?main():wb?=?xw.Book.caller()values?=?['a','b','c','d','e']wb.sheets[0].range('A1').value?=?values@xw.func def?hello(name):return?f"Hello?{name}!"if?__name__?==?"__main__":xw.Book("PythonExcelTest.xlsm").set_mock_caller()main()

      然后在.xlsm文件sheet1中創建一個按鈕,并設置默認的宏,變成一個觸發按鈕。

      設置好觸發按鈕后,我們直接點擊它,就會發現第一行出現了['a','b','c','d','e']。

      同樣的,我們可以把鳶尾花數據集自動導入到excel中,只需要在.py文件里改動代碼即可,代碼如下:

      import?xlwings?as?xw import?pandas?as?pddef?main():wb?=?xw.Book.caller()df?=?pd.read_csv(r"E:\\test\\PythonExcelTest\\iris.csv")df['total_length']?=??df['sepal_length']?+?df['petal_length']wb.sheets[0].range('A1').value?=?df@xw.func def?hello(name):return?f"Hello?{name}!"if?__name__?==?"__main__":xw.Book("PythonExcelTest.xlsm").set_mock_caller()main()

      好了,這就是在excel中調用Python腳本的全過程,你可以試試其他有趣的玩法,比如實現機器學習算法、文本清洗、數據匹配、自動化報告等等。

      Excel+Python,簡直法力無邊。

      參考medium文章

      往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯黃海廣老師《機器學習課程》視頻課 本站qq群851320808,加入微信群請掃碼:

    總結

    以上是生活随笔為你收集整理的【Python】如何在Excel中调用Python脚本,实现数据自动化处理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。