0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何把Python和Excel两大数据工具进行集成

数据分析与开发 来源:Python大数据分析 作者:朱卫军 2021-10-12 09:41 次阅读

这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作。

说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5亿忠实用户,而作为网红语言的Python,也仅仅只有700万的开发人员。Excel是全世界最流行的编程语言。对,你没看错,自从微软引入了LAMBDA定义函数后,Excel已经可以实现编程语言的算法,因此它是具备图灵完备性的,和JavaScript、Java、Python一样。虽然Excel对小规模数据场景来说是刚需利器,但它面对大数据时就会有些力不从心。我们知道一张Excel表最多能显示1048576行和16384列,处理一张几十万行的表可能就会有些卡顿,当然你可以使用VBA进行数据处理,也可以使用Python来操作Excel。这就是本文要讲到的主题,Python的第三方库-xlwings,它作为Python和Excel的交互工具,让你可以轻松地通过VBA来调用Python脚本,实现复杂的数据分析。

一、为什么将Python与Excel VBA集成?

VBA作为Excel内置的宏语言,几乎可以做任何事情,包括自动化、数据处理、分析建模等等,那为什么要用Python来集成Excel VBA呢?主要有以下三点理由:

1.  如果你对VBA不算精通,你可以直接使用Python编写分析函数用于Excel运算,而无需使用VBA;
2.  Python相比VBA运行速度更快,且代码编写更简洁灵活;
3.  Python中有众多优秀的第三方库,随用随取,可以节省大量代码时间;

对于Python爱好者来说,pandas、numpy等数据科学库用起来可能已经非常熟悉,如果能将它们用于Excel数据分析中,那将是如虎添翼。

二、为什么使用xlwings?

Python中有很多库可以操作Excel,像xlsxwriter、openpyxl、pandas、xlwings等。但相比其他库,xlwings性能综合来看几乎是最优秀的,而且xlwings可以实现通过Excel宏调用Python代码。

安装xlwings非常简单,在命令行通过pip实现快速安装:

pipinstallxlwings

安装好xlwings后,接下来需要安装xlwings的 Excel集成插件,安装之前需要关闭所有 Excel 应用,不然会报错。同样在命令行输入以下命令:

xlwingsaddininstall

出现下面提示代表集成插件安装成功。4fbd771a-26b6-11ec-82a8-dac502259ad0.png
xlwings和插件都安装好后,这时候打开Excel,会发现工具栏出现一个xlwings的菜单框,代表xlwings插件安装成功,它起到一个桥梁的作用,为VBA调用Python脚本牵线搭桥。

另外,如果你的菜单栏还没有显示“开发工具”,那需要把“开发工具”添加到功能区,因为我们要用到宏。步骤很简单:1、在"文件"选项卡上,转到"自定义>选项"。2、在“自定义功能区”和“主选项卡”下,选中“开发工具”复选框。

菜单栏显示开发工具,就可以开始使用宏。如果你还不知道什么是宏,可以暂且把它理解成实现自动化及批量处理的工具。到这一步,前期的准备工作就完成了,接下来就是实战!

三、玩转xlwings

要想在excel中调用python脚本,需要写VBA程序来实现,但对于不懂VBA的小伙伴来说就是个麻烦事。但xlwings解决了这个问题,不需要你写VBA代码就能直接在excel中调用python脚本,并将结果输出到excel表中。xlwings会帮助你创建.xlsm.py两个文件,在.py文件里写python代码,在.xlsm文件里点击执行,就完成了excel与python的交互。怎么创建这两个文件呢?非常简单,直接在命令行输入以下代码即可:

xlwingsquickstartProjectName

这里的ProjectName可以自定义,是创建后文件的名字。

如果你想把文件创建到指定文件夹里,需要提前将命令行导航到指定目录。创建好后,在指定文件夹里会出现两个文件,就是之前说的.xlsm.py文件。

我们打开.xlsm文件,这是一个excel宏文件,xlwings已经提前帮你写好了调用Python的VBA代码。按快捷键Alt + F11,就能调出VBA编辑器。

SubSampleCall()
mymodule=Left(ThisWorkbook.Name,(InStrRev(ThisWorkbook.Name,".",-1,vbTextCompare)-1))
RunPython"import"&mymodule&";"&mymodule&".main()"
EndSub

里面这串代码主要执行两个步骤:
1、在.xlsm文件相同位置查找相同名称的.py文件2、调用.py脚本里的main()函数我们先来看一个简单的例子,自动在excel表里输入['a','b','c','d','e']第一步:我们把.py文件里的代码改成以下形式。

importxlwingsasxw
importpandasaspd


defmain():
wb=xw.Book.caller()
values=['a','b','c','d','e']
wb.sheets[0].range('A1').value=values


@xw.func
defhello(name):
returnf"Hello{name}!"


if__name__=="__main__":
xw.Book("PythonExcelTest.xlsm").set_mock_caller()
main()

然后在.xlsm文件sheet1中创建一个按钮,并设置默认的宏,变成一个触发按钮。设置好触发按钮后,我们直接点击它,就会发现第一行出现了['a','b','c','d','e']

同样的,我们可以把鸢尾花数据集自动导入到excel中,只需要在.py文件里改动代码即可,代码如下:

importxlwingsasxw
importpandasaspd

defmain():
wb=xw.Book.caller()
df=pd.read_csv(r"E:\test\PythonExcelTest\iris.csv")
df['total_length']=df['sepal_length']+df['petal_length']
wb.sheets[0].range('A1').value=df


@xw.func
defhello(name):
returnf"Hello{name}!"


if__name__=="__main__":
xw.Book("PythonExcelTest.xlsm").set_mock_caller()
main()

好了,这就是在excel中调用Python脚本的全过程,你可以试试其他有趣的玩法,比如实现机器学习算法、文本清洗、数据匹配、自动化报告等等。Excel+Python,简直法力无边。

责任编辑:haq
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Excel
    +关注

    关注

    4

    文章

    218

    浏览量

    55523
  • python
    +关注

    关注

    56

    文章

    4795

    浏览量

    84657

原文标题:如何在 Excel 中调用 Python 脚本,实现数据自动化处理

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用Python进行串口通信的案例

    当然!以下是一个使用Python进行串口通信的简单示例。这个示例展示了如何配置串口、发送数据以及接收数据。我们将使用 pyserial 库,这是一个非常流行的用于串口通信的
    的头像 发表于 11-22 09:11 181次阅读

    智慧城市与大数据的关系

    的建设需要对海量的数据资源进行收集、整合、存储与分析。大数据威廉希尔官方网站 的应用,如智能感知、分布式存储等,使得这些数据能够被高效地处理和利用。 决策支持 : 在智慧城市的建设和运行过程中,
    的头像 发表于 10-24 15:27 644次阅读

    IP 地址大数据分析如何进行网络优化?

    一、大数据分析在网络优化中的作用 1.流量分析 大数据分析可以对网络中的流量进行实时监测和分析,了解网络的使用情况和流量趋势。通过对流量数据的分析,可以发现网络中的瓶颈和问题,为网络优
    的头像 发表于 10-09 15:32 231次阅读
    IP 地址<b class='flag-5'>大数据</b>分析如何<b class='flag-5'>进行</b>网络优化?

    基于Kepware的Hadoop大数据应用构建-提升数据价值利用效能

    处理超大数据集。 Hadoop的生态系统非常丰富,包括许多相关工具和威廉希尔官方网站 ,如Hive、Pig、HBase等,这些工具可以方便地构建复杂的大数据应用。Hadoop广泛应用于各种场景,包括
    的头像 发表于 10-08 15:12 150次阅读
    基于Kepware的Hadoop<b class='flag-5'>大数据</b>应用构建-提升<b class='flag-5'>数据</b>价值利用效能

    使用Python进行Ping测试

    )请求包,然后等待目标主机返回响应包,从而测量网络的延迟和丢包情况。随着Python编程语言的广泛应用,越来越多的网络工程师开始使用Python进行自动化网络测试和管理任务。本篇文章将详细介绍如何使用
    的头像 发表于 08-12 17:56 497次阅读
    使用<b class='flag-5'>Python</b><b class='flag-5'>进行</b>Ping测试

    使用CYW20829的BLE进行大数据发送应用,BLE丢失数据如何解决?

    我目前正在使用 CYW20829 的 BLE 进行大数据发送应用,我使用的是 FREERTOS(例程 Bluetooth_LE_GATT_Throughput_Server 是我的参考),蓝牙被
    发表于 07-23 07:56

    用pycharm进行python爬虫的步骤

    以下是使用PyCharm进行Python爬虫的步骤: 安装PyCharm和Python 首先,您需要安装PyCharm和Python。PyCharm是一个流行的
    的头像 发表于 07-11 10:11 832次阅读

    数据分析的工具有哪些

    数据分析是一个涉及收集、处理、分析和解释数据以得出有意义见解的过程。在这个过程中,使用正确的工具至关重要。以下是一些主要的数据分析工具,以及
    的头像 发表于 07-05 14:54 856次阅读

    使用Python进行自然语言处理

    在探讨使用Python进行自然语言处理(NLP)的广阔领域时,我们首先需要理解NLP的基本概念、其重要性、Python在NLP中的优势,以及如何通过Python实现一些基础的NLP任务
    的头像 发表于 07-04 14:40 448次阅读

    如何使用Python进行神经网络编程

    。 为什么使用PythonPython是一种广泛使用的高级编程语言,以其易读性和易用性而闻名。Python拥有强大的库,如TensorFlow、Keras和PyTorch,这些库提供了构建和训练神经网络的
    的头像 发表于 07-02 09:58 403次阅读

    大数据威廉希尔官方网站 是干嘛的 大数据核心威廉希尔官方网站 有哪些

    大数据威廉希尔官方网站 是指用来处理和存储海量、多类型、高速的数据的一系列威廉希尔官方网站 和工具。现如今,大数据已经渗透到各个行业和领域,对企业决策和业务发展起到了重要作用。本文将详细介绍
    的头像 发表于 01-31 11:07 3437次阅读

    eda工具软件有哪些 EDA工具有什么优势

    和预测提供基础。在进行EDA过程中,使用合适的工具软件可以显著提升效率和准确性。本文将介绍几种常见的EDA工具软件。 Python和其相关的库 Py
    的头像 发表于 01-30 13:57 1152次阅读

    如何使用Python进行图像识别的自动学习自动训练?

    如何使用Python进行图像识别的自动学习自动训练? 使用Python进行图像识别的自动学习和自动训练需要掌握一些重要的概念和威廉希尔官方网站 。在本文中,我们将介绍如何使用
    的头像 发表于 01-12 16:06 585次阅读

    labview处理excel数据中的粗大误差

    实际应用中,我们经常需要处理和分析来自不同来源的数据。其中,Excel表格是一个常见的数据格式,因为它易于使用和管理。然而,Excel数据
    的头像 发表于 01-05 16:15 913次阅读

    labview读取excel数据中的每个数据

    如何使用 LabVIEW 读取 Excel 数据,并对其中的每个数据进行处理。 Excel 是一种常用的电子表格软件,广泛用于
    的头像 发表于 12-26 11:19 3792次阅读