咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

序言:

继 《初学系列-Python数据分析:整合环境探索第1编》之后,学习如何在Excel整合好的环境下使用Pyxll。

Pyxll插件内容介绍:

官方说法:
PyXLL是一个Excel插件,允许开发人员使用Python代码扩展Excel的功能,灵活、高效、并且可以在熟悉的Excel用户界面进行与信息基础结构的其他部分进行交互,PyXLL运行的完整Python发行版,可以访问所有第三方Python包,如NumPy, Pandas)


Pyxll插件功能用途:(内置、自定义)

  • 内置函数
  1. 在Excel表格在工具栏中切换到【公式】面板,如图1
  2. 选择需要的函数时,将类别选择为PyXLL,如图1,【选择函数(N)】下拉框中罗列出了很多PyXLL插件准备好的内置函数,只要搞懂意思就可以按照实际需要选择使用,
  3. 使用方式与OfficeExcel自带的那些自动求和函数无差别,如下图2
  4. 下图2,使用的内置函数是查看PyXLL插件的版本号:pyxll_version()

图1-选择需要使用的函数:查看版本号


图2-选定函数输出版本号结果

小结:

内置函数使用非常简单,就是Pyxll官方已经开发出了一些示例函数,可供用户像使用Ecxel自带的VB函数一样使用即可!


  • 自定义函数:

官方介绍:

图3-自定义函数使用介绍

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 = [PYTHON] pythonpath =

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

图4-插件包的内容

  • examples文件夹,包含了很多.py文件,如下图5,此时可能想到了什么

图5-py文件

  • 回头打开了官方提供的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


图6-官方介绍文档


  • 突发奇想,又打开了插件根目录下的【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

下图7-modules模块的配置

  • 继续探究,到这个份上了,直接打开了misc.py文件,查看内容,如下图8,结果发现misc.py里面就是内置函数的内容,和上文举例查看Pyxll版本号的函数完全对应

图8-.py文件内容是函数代码

小结:

一个完整的自定义函数的使用流程

  • 首先,开发出自己的函数代码块:.py文件
  • 其次,在插件根目录下的【pyxll.cfg】配置文件中定义自己模块的名字,目的是让Excel能识别到,相当于做了一个分类
  • 再次,将自己开发好的Python代码(.py)文件放入到插件包的examples文件夹中(应该可以放到其他地方,重新在配置文件指定路径)
  • 最后,重新打开Excel文件,选择【公式】->【插入函数】->【类别PyXLL】->【自定义函数名称】

使用示例:

自定义函数代码块:zf.py


图9-自定义python代码:【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

图10-安放文件

  • 在【pyxll.cfg】配置文件中配置模块名称,这里必须要和文件名一致如下图11,否则在打开Excel的时候会报错,无法匹配到自定义模块

图11:-配置模块名称、需和py文件名称一致

在Excel使用自己编写的代码函数,输入变量值 "起个网名Zzzz哒费劲"

图12-使用自定义函数welcome

输出结果 -->

Hello, 欢迎来到、( 起个网名Zzzz哒费劲 ) 的头条号:《探索在Excel使用Pyxll第2编》

自定义函数在Excel输出结果



总结:

使用PyXLL插件内置(自带的Python函数)很简单,和Excel自带的VB函数使用没区别

自定义函数稍微复杂麻烦点,需要开发代码、配置;但是配置好了之后,使用又是很简单的,和内置函数用法一致,无差异