Heim >Backend-Entwicklung >Python-Tutorial >So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!

So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!

PHPz
PHPznach vorne
2023-04-13 09:19:062984Durchsuche

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: So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!

oder Text nach dem Zufallsprinzip abgleichen: So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!

1. Warum Python mit Excel VBA integrieren?

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:


  1. Wenn Sie sich nicht mit VBA auskennen, können Sie Python direkt verwenden, um Analysefunktionen für Excel-Berechnungen zu schreiben, ohne VBA zu verwenden. Im Vergleich zu Python läuft VBA schneller , und das Schreiben von Code ist präziser und flexibler.

    1. Es gibt viele hervorragende Bibliotheken von Drittanbietern, die jederzeit verwendet werden können, was viel Codierungszeit sparen kann Python-Liebhaber sind möglicherweise bereits mit Data-Science-Bibliotheken wie Pandas und Numpy vertraut. Wenn Sie sie für die Excel-Datenanalyse verwenden können, ist dies sogar noch leistungsfähiger.
  • 2. Warum xlwings verwenden?
    1. Es gibt viele Bibliotheken in Python, die Excel bedienen können, wie z. B. xlsxwriter, openpyxl, pandas, xlwings usw.
    2. Aber im Vergleich zu anderen Bibliotheken weist xlwings fast die beste Gesamtleistung auf und xlwings kann Python-Code über Excel-Makros aufrufen.

    Das Bild stammt aus Early Python

    Die einführende Verwendung von xlwings wird hier nicht erklärt.

    Die Installation von xlwings ist sehr einfach über pip in der Befehlszeile:

    pip install python
    

    Nach 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 install
    
    So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!Die folgende Eingabeaufforderung zeigt an, dass das integrierte Plug-in erfolgreich installiert wurde. So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!

    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:

    So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!1. Gehen Sie auf der Registerkarte „Datei“ zu „Anpassen > Optionen“.

    2. Aktivieren Sie unter „Menüband anpassen“ und „Hauptregisterkarten“ das Kontrollkästchen „Entwicklungstools“.

    So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!

    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!

    三、玩转xlwings

    要想在excel中调用python脚本,需要写VBA程序来实现,但对于不懂VBA的小伙伴来说就是个麻烦事。

    但xlwings解决了这个问题,不需要你写VBA代码就能直接在excel中调用python脚本,并将结果输出到excel表中。

    xlwings会帮助你创建​​.xlsm​​​和​​.py​​​两个文件,在​​.py​​​文件里写python代码,在​​.xlsm​​文件里点击执行,就完成了excel与python的交互。

    怎么创建这两个文件呢?非常简单,直接在命令行输入以下代码即可:

    xlwings quickstart ProjectName
    

    这里的​​ProjectName​​可以自定义,是创建后文件的名字。

    So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!

    如果你想把文件创建到指定文件夹里,需要提前将命令行导航到指定目录。

    创建好后,在指定文件夹里会出现两个文件,就是之前说的​​.xlsm​​​和​​.py​​文件。

    So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!

    我们打开​​.xlsm​​文件,这是一个excel宏文件,xlwings已经提前帮你写好了调用Python的VBA代码。

    按快捷键​​Alt + F11​​​,就能调出VBA编辑器。

    So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!


    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​​中创建一个按钮,并设置默认的宏,变成一个触发按钮。

    So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!

    设置好触发按钮后,我们直接点击它,就会发现第一行出现了​​['a','b','c','d','e']​​。

    So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!

    同样的,我们可以把鸢尾花数据集自动导入到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()
    
    
    

    So rufen Sie Python-Skripte in Excel auf, um die Datenverarbeitung zu automatisieren!

    好了,这就是在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!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen