pyxll excel插件的使用
很久之前我写过一篇博客《python将某目录下所有excel文件合并》,最近有老外给我发邮件,想让我在该页面上能不能再链接介绍下pyxll插件—-一个python语言写成的excel 插件(商业产品)。我下载试用版测试了下(30天试用),发现确实是个不错的产品,唯一不好的是一个收费产品。本篇就简单的记录下pyxll 插件的安装和功能。
一、pyxll的安装
下载地址: https://www.pyxll.com/download.html ,安装方式有两种,官方推荐的是使用 Canopy python开发套件进行安装(安装相对简单,界面上点选式安装,而且pyxll的开发和canopy的开发貌似是同一个公司),不过我使用的是Anaconda python开发环境, 这里选择的是其他python平台,根据相应的python版本和excel 版本选择下载pyxll包 。
1、下载安装
解包pyxll压缩包后,里面有.whl 文件,可以通过pip 命令进行安装,见下图:
2、pyxll.cfg配置
安装完成后,需要配置pyxll.cfg文件。这里以常用的配置文件为例:
1[PYTHON]
2pythonpath = C:/pyxll-3.5.4-x64-py27
3executable = C:/ProgramData/Anaconda2/pythonw.exe
4pythonhome = C:/ProgramData/Anaconda2/
5dll = C:/ProgramData/Anaconda2/python27.dll
6[PYXLL]
7modules = test
pythonpath为要使用的自定义python模式文件的路径,该参数实际上也可以写到PYXLL配置项下。后面还有日志和license配置项,可以按需求进行选择。
3、excel 加载pyxll.xll文件
打开一个excel 文件,可以通过 文件 — 选项 — 加载项 — 转到 —- 浏览 — 选择pyxll解压包里的pyxll.xll文件,此时就启用了pyxll 文件 ,首次启动界面如下:
这里选择start trial进行试用。点选加载项,会发现多了一个pyxll选项,在该处可以reload python插件。
二、pyxll的使用
这里以官方的演示的hello函数为例,该函数内容如下:
1from pyxll import xl_func
2@xl_func("string name: string")
3def hello(name):
4 """return a familiar greeting"""
5 return "Hello, %s" % name
将该python文件保存到pythonpath目录。
用该函数,如下:
这只一个简单的小示例,官方的example 示例中,比如可以实现动态时间显示(RTD),加减乘除、宏操作等,当然了这里是调用的python,基本上python上可以实现的文本处理功能在这里都可以自己以代码形式在excel里实现,就像使用VBA一样。
当然,我们实现的函数功能,也可以像excel里自带的函数一样,直接在fx后面通过 “=函数名” 进行调用。
三、ribbon使用
Ribbon可以简单的理解为自定义功能区功能,如下图:
上面框选的Pyxll Example Tab在excel里是不存在的,这个新增的功能区就可以认为是ribbon功能。不过上面的截图我们也看到出现了报错。报错原因我认为是两个地方有问题:其一,python中缺少ribbon模块;其二,需要将自定义的ribbon配置内容加到pythonpath路径里。
另外把把ribbon的配置路径也加入到pythonpath中,如C:/pyxll-3.5.4-x64-py27/examples 。成功配置后,界面如下:
当然这里的界面是可以通过修改ribbon.xml 文件进行自定义修改的。
四、其他
本篇侧重于pyxll的安装和demo功能的实现,按其官方介绍,其还有Worksheet函数、Menu菜单实现(EXCEL顶部栏)、宏开发等功能。由于暂时也没相关需后,后面有相关需求时,再写相关使用文章吧。
另外说说pyxll和xlsxwriter、xlrd等工具的区别,除了商业软件和开源软件的区别外,还有一个重要的区别,xlsxwriter、xlrd等模块是不依赖excel 环境的,其可以在命令行下通过命令调用读写excel 文件,进行行列操作;而pyxll是离不开excel的,其更像是excel 的第三方插件增强,可以以python为基础实现excel 已存在的和不存在的一些功能。提到的这三个工具并不冲突,也谈不上谁更好,只能说是互相补充吧。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/pyxll-excel/5825.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.