Excel还是Python?一文教你集成Python和Excel!

Excel是很出色的工具,但有时候它不够好用。当数据集较小,需要处理的问题比较简单时,Excel最好用。但是一旦跳出这些舒适区域,就会发现Excel无法满足业务需求。当然,可以使用VBA来解决问题,但为什么不考虑Python呢,借助xlwings这个三方库,我们可以把Python和Excel完全集成到一起。

为什么要集成Python和Excel

Excel VBA能完成很多数据分析工作,包括自动化。那么为什么要使用Python?有以下几个重要的原因:

  • 即便不用VBA,也可以在Excel中创建自定义函数。
  • Python可以大幅提升数据操作的效率
  • Python中有大量的三方库可用于爬取数据,操作数据库,机器学习,在数据领域几乎能完全你想要解决的任何问题

设置好环境,安装xlwings

先在终端安装xlwings三方库。

pip install xlwings

安装完毕后需要进一步安装xlwings excel集成插件。

xlwings addin install

在安装过程中可能会遇到以下错误:

xlwings 0.17.0
[Errno 2] No such file or directory: 'C:\\Users\\costa\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam'

这时候只需要创建丢失的目录即可。

mkdir C:\\Users\\costa\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART

安装成功后,打开Excel,会注意到导航栏多了xlwings addin.

在这里插入图片描述

为xlwings启用用户自定义函数

首先要添加Excel加载项,完成后,应该可以看到以下内容:

在这里插入图片描述

启用对VBA项目对象模型的信任访问。导航到文件>选项>信任中心>信任中心设置>宏设置来做到这一点:

在这里插入图片描述

xlwings入门示例

集成Python和Excel的方法主要有两种:1. 从VBA调用Python脚本,2. 用户自定义函数。

为了避免潜在的问题,xlwings提供了创建Excel表格的功能。我们尝试一下这个功能,在终端输入以下命令:

xlwings quickstart ProjectName

我们创建了一个简单项目:‘MyFirstPythonXL’,上面的命令将自动创建一个文件夹,里边包含1个excel工作表和1个python脚本。

从VBA到Python

在开始编码之前,先调出Excel VBA编辑器(Alt + F11),会返回如下UI:

在这里插入图片描述

上面的VBA代码将执行以下操作:

  • 在与Excel表格相同的目录下查找Python脚本
  • 寻找与Excel表同名的Python脚本(扩展名为.py)
  • 在Python脚本中调用函数“main()”

让我们看一些简单的示例。

示例1:在Python中计算,将结果返回给Excel

该实例将会在Python中进行计算,并将结果返回给Excel。

我们将从本地CSV获取数据,对数据进行修改(这步用pandas实现),然后将输出传递给Excel。以下是python脚本中的代码。

在这里插入图片描述

结果如下图所示:

在这里插入图片描述

示例2:将excel单元格的输入作为参数

我们先读取Excel单元格的内容,在Python中对其进行处理,然后将结果返回给Excel。

以下是Python代码:

在这里插入图片描述

结果如下图所示:

在这里插入图片描述

示例3:用xlwings创建自定义函数

xlwings可以创建Excel函数,直接在单元格中使用,与普通的Excel函数几乎没有区别。

更改python脚本中的代码,为了将Python函数转换为Excel函数,需要使用装饰器’@xw.func’装饰函数。

以下是Python代码:

在这里插入图片描述

结果如下图所示:

在这里插入图片描述

结论

如果你喜欢Python和Excel,那么xlwings将称为集成两个强大工具的最佳途径。

如果喜欢我们的文章,记得点赞和收藏哦,我们每天都会为大家带来Python,数据科学和量化交易的精品内容。

【关于我们】

蜂鸟数据:国内领先的金融数据API提供商。

蜂鸟数据团队由业界顶尖的数据工程师,数据科学家和宽客组成,我们正努力构建一个强大的金融数据库,并提供API接口,目标是令金融数据开源化和平民化。

浏览并测试我们接口吧,目前覆盖股票,外汇,商品期货,数字货币和宏观经济领域,包括实时报价(tick)和历史数据(分钟),提供REST API和Websocket两种接入方式,能够满足金融分析师,量化交易和理财app的需求。

需要金融数据?利用蜂鸟API将数据整合到您的应用,查看API文档。

如果您准备好了,请登录蜂鸟官网,注册免费获取API密钥,然后开始探索我们的金融数据库吧。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值