网站首页 > 博客文章 正文
序言:
继 《初学系列-Python数据分析:整合环境探索第1编》之后,学习如何在Excel整合好的环境下使用Pyxll。
Pyxll插件内容介绍:
官方说法:
PyXLL是一个Excel插件,允许开发人员使用Python代码扩展Excel的功能,灵活、高效、并且可以在熟悉的Excel用户界面进行与信息基础结构的其他部分进行交互,PyXLL运行的完整Python发行版,可以访问所有第三方Python包,如NumPy, Pandas)
Pyxll插件功能用途:(内置、自定义)
- 内置函数
- 在Excel表格在工具栏中切换到【公式】面板,如图1
- 选择需要的函数时,将类别选择为PyXLL,如图1,【选择函数(N)】下拉框中罗列出了很多PyXLL插件准备好的内置函数,只要搞懂意思就可以按照实际需要选择使用,
- 使用方式与OfficeExcel自带的那些自动求和函数无差别,如下图2
- 下图2,使用的内置函数是查看PyXLL插件的版本号:pyxll_version()
小结:
内置函数使用非常简单,就是Pyxll官方已经开发出了一些示例函数,可供用户像使用Ecxel自带的VB函数一样使用即可!
- 自定义函数:
官方介绍:
Save your module and edit the pyxll.cfg file again to add your new module to the list of modules to load and add the directory containing your module to the pythonpath.
[PYXLL]
modules = <add the name of your new module here>
[PYTHON]
pythonpath = <add the folder containing your Python module here>
Go to the Addins menu in Excel and select PyXLL -> Reload. This causes PyXLL to reload the config and Python modules, allowing new and updated modules to be discovered.
看到这段文字介绍,一开始想到的是要使用命令配置一个模块名称,然后在把自己开发的Python代码函数块的存放路径配置到pythonpath这个参数变量中;似懂非懂的感觉啊。
探索自定义函数配置安装
- 思索了片刻之后,想到了之前整合环境时,PyXLL插件包是一个文件夹,这个文件夹里面有很多内容,决定先看看插件包的内容,如下图4
- examples文件夹,包含了很多.py文件,如下图5,此时可能想到了什么
- 回头打开了官方提供的examples.xlsx文件,第一个工作表单介绍了这些个模块
System Check | Verifies that PyXLL is installed with necessary dependencies for this demonstration. | ||||||
UDFs | Python functions are used just like Excel's built-in functions, complete with documentation. | ||||||
Arrays | Write functions that can take ranges of cells as arguments, and array formulas that return ranges. | ||||||
Pandas | Use Pandas to perform complex analyses directly in Excel. | ||||||
Objects | Return Python objects to Excel and reference them in your formulas. | ||||||
Plotting | Use Python plotting packages to make charts in Excel. | ||||||
Custom Types | Define custom types to handle your own Python classes. | ||||||
Automation | Create interactive objects and modify sheet contents with PyXLL macro functions and the Excel Object Model. | ||||||
RTD | Stream live data from Python to Excel. | ||||||
Async Functions | Call lengthy IO routines in the background without blocking Excel. | ||||||
Other | Look for the "PyXLL Example Tab" in the ribbon |
- 突发奇想,又打开了插件根目录下的【pyxll.cfg】文件,可能是职业的嗅觉,cfg一般都是对应的配置文件,如下图7
- modules名称定义基本和examples.xlsx文件中介绍的对的上,并且和上图5中介绍列举的.py文件能完全对上
modules =
misc
worksheetfuncs
arrayfunctions
pandas_example
customtypes
asyncfunc
menus
automation
callbacks
objectcache
real_time_data
custom_task_panes
plotting
ribbon
- 继续探究,到这个份上了,直接打开了misc.py文件,查看内容,如下图8,结果发现misc.py里面就是内置函数的内容,和上文举例查看Pyxll版本号的函数完全对应
小结:
一个完整的自定义函数的使用流程
- 首先,开发出自己的函数代码块:.py文件
- 其次,在插件根目录下的【pyxll.cfg】配置文件中定义自己模块的名字,目的是让Excel能识别到,相当于做了一个分类
- 再次,将自己开发好的Python代码(.py)文件放入到插件包的examples文件夹中(应该可以放到其他地方,重新在配置文件指定路径)
- 最后,重新打开Excel文件,选择【公式】->【插入函数】->【类别PyXLL】->【自定义函数名称】
使用示例:
自定义函数代码块:zf.py
from pyxll import xl_func
@xl_func
def welcome(name):
"""测试-> 自定义 PYXLL插件函数:返回 欢迎语"""
return "Hello, 欢迎来到、( %s ) 的头条号:《探索在Excel使用Pyxll第2编》" % name
配置模块名称
- 将自定义的【zf.py】文件放入到PyXLL插件包的examples文件夹下,如下图10
- 在【pyxll.cfg】配置文件中配置模块名称,这里必须要和文件名一致如下图11,否则在打开Excel的时候会报错,无法匹配到自定义模块
在Excel使用自己编写的代码函数,输入变量值 "起个网名Zzzz哒费劲"
输出结果 -->
Hello, 欢迎来到、( 起个网名Zzzz哒费劲 ) 的头条号:《探索在Excel使用Pyxll第2编》
总结:
使用PyXLL插件内置(自带的Python函数)很简单,和Excel自带的VB函数使用没区别
自定义函数稍微复杂麻烦点,需要开发代码、配置;但是配置好了之后,使用又是很简单的,和内置函数用法一致,无差异
猜你喜欢
- 2024-12-08 软件测试|PC端应用自动化最佳解决方案——Pywinauto
- 2024-12-08 基于Python制作回合制手游外挂简单教程(中)
- 2024-12-08 3种方式自动化控制APP
- 2024-12-08 iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践
- 2024-12-08 Airtest入门及多设备管理总结
- 2024-12-08 如何使用 Python Nornir 实现基于 CLI 的网络自动化?
- 2024-12-08 自动化登录:利用安卓模拟器实现网页二维码扫描登录
- 2024-12-08 RPA技术uipath分享
- 2024-12-08 使用Python自动化Microsoft Excel和Word
- 2024-12-08 python 你需要知道的
你 发表评论:
欢迎- 最近发表
-
- 比GoPro 13更强的大疆Action 5 Pro,到底强在哪里?
- 信号和槽(信号和槽的实现原理)
- 在响应式项目中连接设计与开发(请简述实现响应式设计包括哪些技术点)
- 【C#】委托、Action、Func 和 Event 之间的关系
- 如何使用JavaScript实现Prompt弹窗?
- 谷歌Magic Actions功能曝光:AI革新安卓16通知交互
- 基于目标TPS的性能测试,如何通过手动设置场景进行测试?
- IOS基础学习之输出口和动作(io口输入输出实验总结及体会)
- 《Java语言程序设计》期末考试模拟试题——判断题和问答题
- Android学习之Touch事件的处理(android触摸事件实例)
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)