如何在Excel中呼叫Python腳本,實現資料自動化處理!
說起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非常簡單,在命令列透過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()<br>mymodule = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))<br>RunPython "import " & mymodule & ";" & mymodule & ".main()"<br>End Sub<br><br>
里面这串代码主要执行两个步骤:
1、在.xlsm
文件相同位置查找相同名称的.py
文件
2、调用.py
脚本里的main()
函数
我们先来看一个简单的例子,自动在excel表里输入['a','b','c','d','e']
第一步:我们把.py
文件里的代码改成以下形式。
import xlwings as xw import pandas as pd def 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 pd def 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文章
以上是如何在Excel中呼叫Python腳本,實現資料自動化處理!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
