什么是PyXLL?
PyXLL是一个Excel扩展插件,使开发人员可以使用Python代码扩展Excel的功能。
PyXLL使Python成为Excel工作表的高效,灵活的后端,并允许您使用熟悉的Excel用户界面与信息基础结构的其他部分进行交互。
使用PyXLL,您的Python代码可以使用任何常见的Python发行版(例如Anaconda,Enthought的Canopy或任何其他从2.3到3.9的CPython发行版)在Excel中运行。
由于PyXLL运行您自己的完整Python发行版,因此您可以访问所有第三方Python软件包,例如NumPy,Pandas和SciPy,并可以从Excel中调用它们。
用例示例包括:
调用现有的Python代码以在Excel中执行计算
在VBA中进行太慢或繁琐的数据处理和分析
从数据库等外部系统中提取数据
查询大型数据集以在Excel中显示摘要级别的数据
向Excel用户公开内部或第三方库
如过程中有疑问,欢迎进群讨论~
需要《PyXLL库使用文档》的同学,可以关注下列公众号(非本公众号),后台回复「杀死办公软件」可以获得全部资源哦~
进入上方公众号后发送:
杀死办公软件
它是如何工作的?
PyXLL根据其config文件中的规范在Excel中运行Python代码 ,您可以在其中配置Python的运行方式以及PyXLL应该加载的模块。当PyXLL启动时,它会加载这些模块并公开某些已经用PyXLL装饰器标记的功能。
例如,可以用Python编写用于计算第n个斐波那契数的Excel用户定义函数(UDF),如下所示:
1from pyxll import xl_func
2
3@xl_func
4def fib(n):
5 "Naiive Fibonacci implementation."
6 if n == 0:
7 return 0
8 elif n == 1:
9 return 1
10 return fib(n-1) + fib(n-2)
该xl_func-decorated功能fib由PyXLL检测并暴露于Excel作为用户定义的函数。
用Python实现的Excel中的斐波那契函数。
Excel类型会根据可选的函数签名自动转换为Python类型。在没有简单转换的地方(例如,从方法返回任意类实例时),PyXLL将Python对象引用存储为Excel中的单元格值。当使用对该单元格的引用调用另一个函数时,PyXLL会检索该对象并将其传递给该方法。PyXLL会跟踪引用对象的单元格,以便一旦Excel不再引用该对象,便可以在Python中取消引用。
开始之前
现有用户可能想研究PyXLL 5的新增功能。从早期版本升级的内容应为“从早期版本升级的重要说明”。如果您喜欢边看边学,也许您会喜欢我们的视频指南和教程。
请注意,您不能混合使用32位和64位版本的Excel,Python和PyXLL –它们都必须相同。
根据安装说明安装外接程序,并确保在必要时更新配置文件。有关通过Anaconda或Miniconda安装的特定说明,请参阅 将PyXLL与Anaconda一起使用。
一旦安装了PyXLL,您将可以尝试下载中包含的示例工作簿。下载中还包括示例工作簿中使用的所有代码。
请注意,所有错误都会写入日志文件,因此,如果您遇到困难,请始终在日志文件中查找问题所在,如果有疑问,请与我们联系。
下一步
在安装完PyXLL之后,下面的练习将向您展示如何编写您的第一个Python用户定义函数。
安装PyXLL
首先,请按照初次安装PyXLL的说明进行操作。
您可以使用PyXLL的命令行工具将PyXLL加载项安装到Excel中:
1>> pip install pyxll
2>> pyxll install
在Excel中调用Python函数
PyXLL的主要功能之一是能够从Excel工作簿中的公式调用Python函数。
首先从创建一个新的Python模块并编写一个简单的Python函数开始。要将功能公开给Excel,您要做的就是将xl_func装饰器应用到它。
1from pyxll import xl_func
2
3@xl_func
4def hello(name):
5 return "Hello, %s" % name
保存模块并再次编辑pyxll.cfg文件,以将新模块添加到要加载的模块列表中,并将包含模块的目录添加到pythonpath中。
1[PYXLL]
2modules =
34[PYTHON]
5pythonpath =
转至加载项在Excel菜单并选择PyXLL - >刷新。这会导致PyXLL重新加载config和Python模块,从而允许发现新的和更新的模块。
现在,在工作表中,您会发现可以使用新的Python函数键入公式:
1=hello("me")
使用PyCharm,Eclipse还是Visual Studio?
通过将它们作为调试器附加到正在运行的PyXLL,您可以使用Eclipse,PyCharm,Visual Studio和其他IDE交互式调试在PyXLL中运行的Python代码。有关详细信息,请参见我们的博客文章“调试Python Excel加载项”。
如果您在代码中犯了任何错误,或者函数返回了错误,则可以检查日志文件以找出错误所在,对代码进行必要的更改,然后重新加载PyXLL。
用Python编写的简单Excel函数。
其他资源
该文档说明了如何使用PyXLL的所有功能,并包含完整的API参考。在下载中包含的示例中也很好地展示了PyXLL的功能。这些是开始更多地了解PyXLL可以做什么的好地方。
可以在PyXLL的GitHub页面上找到更多示例代码。