Maison > Article > développement back-end > Comment appeler des scripts Python dans Excel pour automatiser le traitement des données !
En parlant d'Excel, c'est définitivement le roi dans le domaine du traitement des données. Bien qu'il soit né depuis plus de 30 ans, il compte toujours 750 millions d'utilisateurs fidèles dans le monde, et Python, qui est une célébrité d'Internet. langage, ne compte que 7 millions de développeurs.
Excel est le langage de programmation le plus populaire au monde. Oui, vous avez bien lu. Depuis que Microsoft a introduit la fonction de définition LAMBDA, Excel a pu implémenter des algorithmes dans les langages de programmation, il est donc complet pour Turing, tout comme JavaScript, Java et Python.
Bien qu'Excel soit un outil indispensable pour les scénarios de données à petite échelle, il s'avère quelque peu inadéquat face au Big Data.
Nous savons qu'un tableau Excel peut afficher jusqu'à 1 048 576 lignes et 16 384 colonnes. Le traitement d'un tableau contenant des centaines de milliers de lignes peut être un peu lent. Bien sûr, vous pouvez utiliser VBA pour le traitement des données, ou vous pouvez utiliser Python pour le faire. utiliser Excel.
C'est le sujet de cet article, la bibliothèque tierce de Python-xlwings, qui sert d'outil interactif entre Python et Excel, vous permettant d'appeler facilement des scripts Python via VBA pour réaliser une analyse de données complexe.
Par exemple, importez automatiquement des données :
ou faites correspondre du texte de manière aléatoire :
VBA, en tant que langage macro intégré à Excel, peut faire presque tout, y compris l'automatisation, le traitement des données, la modélisation d'analyse, etc. Alors pourquoi utiliser Python pour intégrer Excel VBA ? Il y a trois raisons principales :
Pour ; Amateurs de Python Vous connaissez peut-être déjà très bien les bibliothèques de science des données telles que pandas et numpy. Si vous pouvez les utiliser pour l'analyse de données Excel, elles seront encore plus puissantes.
Il existe de nombreuses bibliothèques en Python qui peuvent faire fonctionner Excel, telles que xlsxwriter, openpyxl, pandas, xlwings, etc.
Mais par rapport à d'autres bibliothèques, xlwings a presque les meilleures performances globales, et xlwings peut appeler du code Python via des macros Excel.
L'image vient de Early Python
L'utilisation introductive de xlwings ne sera pas expliquée ici.
L'installation de xlwings est très simple. Une installation rapide peut être réalisée via pip sur la ligne de commande :
pip install python
Après avoir installé xlwings, vous devez installer le plug-in Excel intégré de xlwings. Avant l'installation, vous devez fermer toutes les applications Excel. , sinon une erreur sera signalée.
Entrez également la commande suivante sur la ligne de commande :
xlwings addin install
L'invite suivante indique que le plug-in intégré est installé avec succès.
Une fois xlwings et le plug-in installés, ouvrez Excel à ce moment et vous trouverez une boîte de menu xlwings apparaissant sur la barre d'outils, ce qui signifie que le plug-in xlwings est installé avec succès. Il sert de pont pour VBA. pour appeler des scripts Python.
De plus, si votre barre de menu n'affiche pas encore "Outils de développement", vous devez ajouter "Outils de développement" au ruban car nous devons utiliser des macros.
Les étapes sont simples :
1. Sur l'onglet "Fichier", allez dans "Personnaliser > Options".
2. Sous « Personnaliser le ruban » et « Onglets principaux », cochez la case « Outils de développement ».
La barre de menu affiche les outils de développement et vous pouvez commencer à utiliser les macros.
Si vous ne savez toujours pas ce qu'est une macro, vous pouvez temporairement la comprendre comme un outil d'automatisation et de traitement par lots.
À ce stade, le travail de préparation préliminaire est terminé, et la prochaine étape est le combat réel !
要想在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文章
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!