Excel: Python 如何干掉 VBA 系列 甲

以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」mp.weixin.qq.com/s/vxWqBycXd...

有个中学老同学,他是做水产饲料这行的,但是平时又喜欢鼓捣 IT 这类技术。可能有着极客的爱好,于是他就想着用 python 脚本给饲料做一个自动配比的程序,根据网上的实时饲料价格自动计算配比总成本。在周五的时候,本想下班前好好摸鱼的我接到了需求。

我的建议是直接利用 python 代码从网上获取实时饲料价格,然后封装成函数被调用,在 excel 表格里插入和调用封装好的 python 函数,这样在 excel 表格里再配合独门的计算公式就可以计算出实时的配比成本数据了。这算不算是实时数据自动量化的一次小小尝试?

可怜的 VBA,和 office 办公套件配合干活可是它的专长,这下子得下岗啦!

说干就干,但是老版的 Excel 对 python 支持力度不够,需要借助一些第三方工具(目前最新的 Microsoft 365 已经可以直接在里边引入 python 代码了,但是新版本的普及是需要时间的,大伙暂且看看老版怎么弄),有个不错的开源工具 xlwings 介绍给大家,下面一起来看看怎么弄吧!

环境配置

系统:Windows 10

语言:Python 3.9.6

表格:Excel 2007

快速安装 xlwings

在 Windows 下安装 python 第三方包和在 Linux 下基本一样,不过,还是墙的关系,需要配置 pip 在墙内的安装镜像源,以清华大学的镜像源为例。

由于需要启动 excel 的关系,下面就不创建 python 的虚拟环境了,直接在全局安装需要的包。

找到下面的路径,确保路径完整,如不完整则手动创建

makefile 复制代码
C:\Users\Administrator\AppData\Roaming\pip\

上面路径中的 Administrator 是八戒电脑的 Windows 系统用户名,读者朋友可以根据自己系统的用户名修改即可。

在上面的路径里用记事本创建文本文件,并输入以下内容

ini 复制代码
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn

最后文件保存为 pip.ini 即可。

查看 python 版本,确保你的环境中 python 是 OK 的

复制代码
python -V

利用 python 的自带模块 pip 安装第三方库 xlwings

复制代码
python -m pip install xlwings

安装完成后,查看是否完整

复制代码
python -m pip list

如果能看到 xlwings 的版本号就说明 ok

diff 复制代码
Package    Version
---------- -------
pip        23.3.1
pywin32    306
setuptools 65.5.1
xlwings    0.30.12

excel 启用 xlwings

打开 excel,先点击左上角的圆圈,弹出菜单,然后点击底部的 Excel 选项

接着点击 加载项 --> Excel 加载项 --> 转到

弹出 加载宏 菜单,如果之前未安装过 xlwings 是看不到对应选项的,点击 浏览,在里边找到并选中上面安装 xlwings 时自动创建的文件 xlwings.xlam

安装完成 xlwings 后,通常文件 xlwings.xlam 被保存在 python 安装目录下的子目录 .\Lib\site-packages\xlwings\addin\ 下。

如果你不清楚 python 安装于哪里,可以先找到系统 环境变量 的页面,双击打开 用户变量 --> Path

找到其中的 python 路径变量所显示的内容就是 python 安装路径。如果你安装了多个版本的 python,可以按照从上往下顺序,排在最上面的 python 路径就是最优先的

加载宏 菜单中勾选中上面找到的 Xlwings 并确定

返回到 excel 工作区,可以看到工具栏顶部多了 xlwings 一栏

启用宏设置

到此虽然可以看到工具 xlwings 了,但是由于一些 excel 的默认安全策略所致,xlwings 这类宏还不能正常工作发挥作用,还需要去到信任中心启用宏设置

宏设置 --> 点击 启用所有宏 --> 勾选 信任对 VBA 工程对象模型的访问,最后点击 确定 返回

到此环境最终配置完毕。以上配置路径在不同版本的 Excel 中是不一样的,这里不打算展开。

手把手,友谊的小船摇啊摇。。说好的,在 excel 插入 python 代码呢?

未完待续。。。

相关推荐
鹏码纵横1 分钟前
已解决:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 异常的正确解决方法,亲测有效!!!
java·python·mysql
仙人掌_lz2 分钟前
Qwen-3 微调实战:用 Python 和 Unsloth 打造专属 AI 模型
人工智能·python·ai·lora·llm·微调·qwen3
猎人everest30 分钟前
快速搭建运行Django第一个应用—投票
后端·python·django
猎人everest33 分钟前
Django的HelloWorld程序
开发语言·python·django
chusheng18401 小时前
2025最新版!Windows Python3 超详细安装图文教程(支持 Python3 全版本)
windows·python·python3下载·python 安装教程·python3 安装教程
别勉.1 小时前
Python Day50
开发语言·python
xiaohanbao092 小时前
day54 python对抗生成网络
网络·python·深度学习·学习
爬虫程序猿2 小时前
利用 Python 爬虫按关键字搜索 1688 商品
开发语言·爬虫·python
英杰.王2 小时前
深入 Java 泛型:基础应用与实战技巧
java·windows·python
安替-AnTi2 小时前
基于Django的购物系统
python·sql·django·毕设·购物系统