Heim > Artikel > Backend-Entwicklung > So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!
Apropos Excel: Obwohl es seit mehr als 30 Jahren auf dem Markt ist, hat es immer noch 750 Millionen treue Benutzer auf der ganzen Welt und Python ist eine Berühmtheit im Internet Sprache, hat nur 7 Millionen Entwickler.
Excel ist die beliebteste Programmiersprache der Welt. Ja, Sie haben richtig gelesen, seit Microsoft die LAMBDA-Definitionsfunktion eingeführt hat, kann Excel Algorithmen in Programmiersprachen implementieren, ist also Turing-vollständig, genau wie JavaScript, Java und Python.
Obwohl Excel ein unverzichtbares Werkzeug für kleine Datenszenarien ist, ist es bei großen Datenmengen eher unzureichend.
Wir wissen, dass eine Excel-Tabelle bis zu 1.048.576 Zeilen und 16.384 Spalten anzeigen kann. Natürlich können Sie für die Datenverarbeitung VBA verwenden oder Python verwenden Excel bedienen.
Dies ist das Thema dieses Artikels, Pythons Drittanbieter-Bibliothek xlwings, die als interaktives Tool zwischen Python und Excel dient und es Ihnen ermöglicht, Python-Skripte einfach über VBA aufzurufen, um eine komplexe Datenanalyse durchzuführen.
Zum Beispiel Daten automatisch importieren:
oder Text nach dem Zufallsprinzip abgleichen:
VBA kann als integrierte Makrosprache von Excel fast alles, einschließlich Automatisierung, Datenverarbeitung, Analysemodellierung usw. Warum also Python verwenden, um Excel VBA zu integrieren? Dafür gibt es drei Hauptgründe:
Das Bild stammt aus Early Python
pip install pythonNach der Installation von xlwings müssen Sie vor der Installation alle Excel-Anwendungen schließen , andernfalls wird ein Fehler gemeldet. Geben Sie außerdem den folgenden Befehl in der Befehlszeile ein:
xlwings addin installDie folgende Eingabeaufforderung zeigt an, dass das integrierte Plug-in erfolgreich installiert wurde.
Nachdem xlwings und das Plug-in installiert sind, öffnen Sie zu diesem Zeitpunkt Excel. In der Symbolleiste wird ein xlwings-Menüfeld angezeigt. Dies bedeutet, dass das xlwings-Plug-in erfolgreich installiert wurde. Es dient als Brücke für VBA um Python-Skripte aufzurufen.
Wenn in Ihrer Menüleiste außerdem noch nicht „Entwicklungstools“ angezeigt wird, müssen Sie „Entwicklungstools“ zum Menüband hinzufügen, da wir Makros verwenden müssen. Die Schritte sind einfach:1. Gehen Sie auf der Registerkarte „Datei“ zu „Anpassen > Optionen“.
2. Aktivieren Sie unter „Menüband anpassen“ und „Hauptregisterkarten“ das Kontrollkästchen „Entwicklungstools“.
In der Menüleiste werden die Entwicklungstools angezeigt und Sie können mit der Verwendung von Makros beginnen.
Wenn Sie noch nicht wissen, was ein Makro ist, können Sie es vorübergehend als Werkzeug zur Automatisierung und Stapelverarbeitung verstehen.
An diesem Punkt sind die vorbereitenden Vorbereitungsarbeiten abgeschlossen und der nächste Schritt ist der eigentliche Kampf!
要想在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文章
Das obige ist der detaillierte Inhalt vonSo rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!