pyxll excel插件的使用

很久之前我写过一篇博客《<a href="https://www.361way.com/python-xlsx-rw/5253.html" target="_blank" rel="noopener">python将某目录下所有excel文件合并</a>》,最近有老外给我发邮件,想让我在该页面上能不能再链接介绍下pyxll插件----一个python语言写成的excel 插件(商业产品)。我下载试用版测试了下(30天试用),发现确实是个不错的产品,唯一不好的是一个收费产品。本篇就简单的记录下pyxll 插件的安装和功能。

一、pyxll的安装

下载地址: <a href="https://www.pyxll.com/download.html" target="_blank" rel="noopener">https://www.pyxll.com/download.html</a> ,安装方式有两种,官方推荐的是使用 Canopy python开发套件进行安装(安装相对简单,界面上点选式安装,而且pyxll的开发和canopy的开发貌似是同一个公司),不过我使用的是Anaconda python开发环境, 这里选择的是其他python平台,根据相应的python版本和excel 版本选择下载pyxll包 。

1、下载安装

<img src="https://www.361way.com/wp-content/uploads/2018/09/pyxll-download.png" width="569" height="264" title="pyxll-download" alt="pyxll-download" />



解包pyxll压缩包后,里面有.whl 文件,可以通过pip 命令进行安装,见下图:



<img src="https://www.361way.com/wp-content/uploads/2018/09/pyxll-whl.png" width="619" height="166" title="pyxll-whl" alt="pyxll-whl" />

2、pyxll.cfg配置

安装完成后,需要配置pyxll.cfg文件。这里以常用的配置文件为例:



<br />
[PYTHON]
pythonpath = C:/pyxll-3.5.4-x64-py27
executable = C:/ProgramData/Anaconda2/pythonw.exe
pythonhome = C:/ProgramData/Anaconda2/
dll =  C:/ProgramData/Anaconda2/python27.dll
[PYXLL]
modules = test
pythonpath为要使用的自定义python模式文件的路径,该参数实际上也可以写到PYXLL配置项下。后面还有日志和license配置项,可以按需求进行选择。

3、excel 加载pyxll.xll文件

打开一个excel 文件,可以通过 文件 --- 选项 --- 加载项 --- 转到 ---- 浏览 --- 选择pyxll解压包里的pyxll.xll文件,此时就启用了pyxll 文件 ,首次启动界面如下:



<img src="https://www.361way.com/wp-content/uploads/2018/09/pyxllxll.png" width="439" height="300" title="pyxll-xll-file" alt="pyxll-xll-file" />



这里选择start trial进行试用。点选加载项,会发现多了一个pyxll选项,在该处可以reload python插件。

二、pyxll的使用

这里以官方的演示的hello函数为例,该函数内容如下:



<br />
from pyxll import xl_func
@xl_func("string name: string")
def hello(name):
    """return a familiar greeting"""
    return "Hello, %s" % name
将该python文件保存到pythonpath目录。



<img src="https://www.361way.com/wp-content/uploads/2018/09/pyxll-hello.png" width="505" height="426" title="pyxll-hello" alt="pyxll-hello" />



在excel里重新加载pyxll插件,此时点选fx函数模块,可以找到pyxll类别,找到里面的hello,就可以直接调用该函数,如下:



<img src="https://www.361way.com/wp-content/uploads/2018/09/pyxll-excel.png" width="620" height="376" title="pyxll-excel" alt="pyxll-excel" />



这只一个简单的小示例,官方的example 示例中,比如可以实现动态时间显示(RTD),加减乘除、宏操作等,当然了这里是调用的python,基本上python上可以实现的文本处理功能在这里都可以自己以代码形式在excel里实现,就像使用VBA一样。



当然,我们实现的函数功能,也可以像excel里自带的函数一样,直接在fx后面通过 “=函数名” 进行调用。

三、ribbon使用

Ribbon可以简单的理解为自定义功能区功能,如下图:



<img src="https://www.361way.com/wp-content/uploads/2018/09/ribbon.png" width="507" height="275" title="ribbon" alt="ribbon" />



上面框选的Pyxll Example Tab在excel里是不存在的,这个新增的功能区就可以认为是ribbon功能。不过上面的截图我们也看到出现了报错。报错原因我认为是两个地方有问题:其一,python中缺少ribbon模块;其二,需要将自定义的ribbon配置内容加到pythonpath路径里。



<img src="https://www.361way.com/wp-content/uploads/2018/09/ribbon-install.png" width="613" height="205" title="ribbon-install" alt="ribbon-install" />



另外把把ribbon的配置路径也加入到pythonpath中,如C:/pyxll-3.5.4-x64-py27/examples 。成功配置后,界面如下:



<img src="https://www.361way.com/wp-content/uploads/2018/09/ribbon-test.png" width="689" height="148" title="ribbon-test" alt="ribbon-test" />



当然这里的界面是可以通过修改ribbon.xml 文件进行自定义修改的。

四、其他

本篇侧重于pyxll的安装和demo功能的实现,按其官方介绍,其还有Worksheet函数、Menu菜单实现(EXCEL顶部栏)、宏开发等功能。由于暂时也没相关需后,后面有相关需求时,再写相关使用文章吧。



另外说说pyxll和xlsxwriter、xlrd等工具的区别,除了商业软件和开源软件的区别外,还有一个重要的区别,xlsxwriter、xlrd等模块是不依赖excel 环境的,其可以在命令行下通过命令调用读写excel 文件,进行行列操作;而pyxll是离不开excel的,其更像是excel 的第三方插件增强,可以以python为基础实现excel 已存在的和不存在的一些功能。提到的这三个工具并不冲突,也谈不上谁更好,只能说是互相补充吧。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注