再见VBA,在Excel中直接调用Python代码

开发 后端
在python的xlwings模块可以插入excel中,像VBA一样运行,这对广大python爱好者来说简直是福音
再见VBA,在Excel中直接调用python代码

 

偶然在知乎上看到一个问题,问能否在excel中调用python代码:

再见VBA,在Excel中直接调用python代码

觉得很有意思,于是查了一下资料,发现python的xlwings模块可以插入excel中,像VBA一样运行,这对广大python爱好者来说简直是福音

下面给大家详细介绍一下,如何在excel中调用python代码

第一步:在excel中加载xlwings模块

关于wlxings的使用,前面已经发过,具体参考python自动化办公|批量处理Excel文件的利器-xlwings,这里不再赘述

首先将xlwings模块作为excel功能区的选项卡

依次点击“文件-选项”,打开如下对话框:

再见VBA,在Excel中直接调用python代码

点击“信任中心-信任中心设置=宏设置”,勾选“信任对VBA工程对象模型的访问”:

再见VBA,在Excel中直接调用python代码

点击功能区“开发工具-加载宏”,勾选Xlwings:

 再见VBA,在Excel中直接调用python代码

如果没有Xlwings,可以点击“浏览”,选择xwlings安装目录下的xlwings.xlam文件,加载进去就OK了

再见VBA,在Excel中直接调用python代码

这时候就能在excel的功能区看到xlwings模块了

再见VBA,在Excel中直接调用python代码

第二步:导入并调用python代码

利用Xlwings模块的quickstart快速创建带宏的工作蒲和python代码文件,具体操作如下。

WIN+R输入cmd打开命令行,用cd命令切换至你想要的路径,在路径下输入命令“xlwings quickstart table”:

再见VBA,在Excel中直接调用python代码

若出现如上信息,表示文件创建成功,可以在文件夹内发现以下文件:

 

再见VBA,在Excel中直接调用python代码

 

打开table.py文件,可以看到自动生成的python代码:

 

 

内有main()和hello()函数,可以实现相应的功能

我们打开table.xlsm文件,依次点击功能区“xlwings-Import Functions”,等加载完毕,在A1单元格输入hello()函数:

再见VBA,在Excel中直接调用python代码
再见VBA,在Excel中直接调用python代码

按回车:

再见VBA,在Excel中直接调用python代码

这样就实现了在excel中调用python自定义函数了

第三步:举一反三

我们再定义一个函数even_to_odd,可以实现偶数变奇数,代码如下:

  1. @xw.func  
  2. def even_to_odd(x):  
  3.     if x%2==0:  
  4.         x=x-1  
  5.     return x  

放入table.py文件中并运行,依次点击功能区“xlwings-Import Functions”,等加载完毕,如下输入even_to_odd()函数:

再见VBA,在Excel中直接调用python代码

 

责任编辑:华轩 来源: 今日头条
相关推荐

2022-05-07 07:26:05

PyScriptHTMLPython 代码

2011-04-19 13:10:11

MySQL储存图片

2011-05-16 13:40:13

MySQL储存图片

2021-01-13 11:13:46

ExcelPandas代码

2010-07-20 13:53:44

Perl引用

2010-04-19 08:51:30

2009-08-03 13:53:30

C#调用Excel

2009-07-14 14:37:11

Flex

2019-06-14 09:34:59

Linux 系统 数据

2009-12-03 08:51:27

Windows 7虚拟内存

2011-03-28 11:21:17

MySQL数据库储存图片

2021-01-15 10:52:10

PythonVBAExcel

2016-03-02 11:23:19

2024-02-22 13:52:51

Python循环代码

2020-10-29 10:44:59

斗鱼腾讯虎牙

2019-02-01 10:35:33

PythonGo语言编程语言

2021-01-21 07:16:03

RocketMQKafka中间件

2023-08-23 19:01:09

PythonExcel语言

2022-07-14 07:12:09

PythonPandasVBA

2014-09-25 11:08:17

ECLLispC语言
点赞
收藏

51CTO技术栈公众号