iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何在Excel中调用Python脚本,实现数据自动化处理!
  • 825
分享到

如何在Excel中调用Python脚本,实现数据自动化处理!

PythonExcel 2023-05-14 21:05:52 825人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

说起excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5亿忠实用户,而作为网红语言的python,也仅仅只有700万的开发人员。Excel是全世界最流行的编程语言。对,你没看错,自从微软引入了LAMBDA

如何在Excel中调用Python脚本,实现数据自动化处理!

说起excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5亿忠实用户,而作为网红语言的python,也仅仅只有700万的开发人员。

Excel是全世界最流行的编程语言。对,你没看错,自从微软引入了LAMBDA定义函数后,Excel已经可以实现编程语言的算法,因此它是具备图灵完备性的,和javascript、Java、Python一样。

虽然Excel对小规模数据场景来说是刚需利器,但它面对大数据时就会有些力不从心。

我们知道一张Excel表最多能显示1048576行和16384列,处理一张几十万行的表可能就会有些卡顿,当然你可以使用VBA进行数据处理,也可以使用Python来操作Excel。

这就是本文要讲到的主题,Python的第三方库-xlwings,它作为Python和Excel的交互工具,让你可以轻松地通过VBA来调用Python脚本,实现复杂的数据分析

比如说自动导入数据:如何在Excel中调用Python脚本,实现数据自动化处理!

或者随机匹配文本:如何在Excel中调用Python脚本,实现数据自动化处理!

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

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


    1. 如果你对VBA不算精通,你可以直接使用Python编写分析函数用于Excel运算,而无需使用VBA;

    1. Python相比VBA运行速度更快,且代码编写更简洁灵活;

    1. Python中有众多优秀的第三方库,随用随取,可以节省大量代码时间;

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

二、为什么使用xlwings?

Python中有很多库可以操作Excel,像xlsxwriter、openpyxl、pandas、xlwings等。

但相比其他库,xlwings性能综合来看几乎是最优秀的,而且xlwings可以实现通过Excel宏调用Python代码。

如何在Excel中调用Python脚本,实现数据自动化处理!图片来自早起Python如何在Excel中调用Python脚本,实现数据自动化处理!

xlwings的入门使用这里不多做讲解。

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

pip install python

安装好xlwings后,接下来需要安装xlwings的 Excel集成插件,安装之前需要关闭所有 Excel 应用,不然会报错。

同样在命令行输入以下命令:

xlwings addin install

出现下面提示代表集成插件安装成功。如何在Excel中调用Python脚本,实现数据自动化处理!

xlwings和插件都安装好后,这时候打开Excel,会发现工具栏出现一个xlwings的菜单框,代表xlwings插件安装成功,它起到一个桥梁的作用,为VBA调用Python脚本牵线搭桥。

如何在Excel中调用Python脚本,实现数据自动化处理!

另外,如果你的菜单栏还没有显示“开发工具”,那需要把“开发工具”添加到功能区,因为我们要用到宏。

步骤很简单:

1、在"文件"选项卡上,转到"自定义>选项"。

2、在“自定义功能区”和“主选项卡”下,选中“开发工具”复选框。

如何在Excel中调用Python脚本,实现数据自动化处理!

菜单栏显示开发工具,就可以开始使用宏。

如果你还不知道什么是宏,可以暂且把它理解成实现自动化及批量处理的工具。

到这一步,前期的准备工作就完成了,接下来就是实战!

三、玩转xlwings

要想在excel中调用python脚本,需要写VBA程序来实现,但对于不懂VBA的小伙伴来说就是个麻烦事。

但xlwings解决了这个问题,不需要你写VBA代码就能直接在excel中调用python脚本,并将结果输出到excel表中。

xlwings会帮助你创建​​.xlsm​​​和​​.py​​​两个文件,在​​.py​​​文件里写python代码,在​​.xlsm​​文件里点击执行,就完成了excel与python的交互。

怎么创建这两个文件呢?非常简单,直接在命令行输入以下代码即可:

xlwings quickstart ProjectName

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

如何在Excel中调用Python脚本,实现数据自动化处理!

如果你想把文件创建到指定文件夹里,需要提前将命令行导航到指定目录。

创建好后,在指定文件夹里会出现两个文件,就是之前说的​​.xlsm​​​和​​.py​​文件。

如何在Excel中调用Python脚本,实现数据自动化处理!

我们打开​​.xlsm​​文件,这是一个excel宏文件,xlwings已经提前帮你写好了调用Python的VBA代码。

按快捷键​​Alt + F11​​​,就能调出VBA编辑器。

如何在Excel中调用Python脚本,实现数据自动化处理!


Sub SampleCall()
mymodule = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))
RunPython "import " & mymodule & ";" & mymodule & ".main()"
End Sub

里面这串代码主要执行两个步骤:

1、在​​.xlsm​​​文件相同位置查找相同名称的​​.py​​文件

2、调用​​.py​​​脚本里的​​main()​​函数

我们先来看一个简单的例子,自动在excel表里输入​​['a','b','c','d','e']​

第一步:我们把​​.py​​文件里的代码改成以下形式。

import xlwings as xw
import pandas as pd


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


@xw.func
def hello(name):
    return f"Hello {name}!"


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


然后在​​.xlsm​​​文件​​sheet1​​中创建一个按钮,并设置默认的宏,变成一个触发按钮。

如何在Excel中调用Python脚本,实现数据自动化处理!如何在Excel中调用Python脚本,实现数据自动化处理!如何在Excel中调用Python脚本,实现数据自动化处理!

设置好触发按钮后,我们直接点击它,就会发现第一行出现了​​['a','b','c','d','e']​​。

如何在Excel中调用Python脚本,实现数据自动化处理!

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

import xlwings as xw
import pandas as pd

def main():
    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
def hello(name):
    return f"Hello {name}!"


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


如何在Excel中调用Python脚本,实现数据自动化处理!

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

Excel+Python,简直法力无边。

参考medium文章

以上就是如何在Excel中调用Python脚本,实现数据自动化处理!的详细内容,更多请关注编程网其它相关文章!

--结束END--

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

本文链接: https://www.lsjlt.com/news/205618.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在Excel中调用Python脚本,实现数据自动化处理!
    说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5亿忠实用户,而作为网红语言的Python,也仅仅只有700万的开发人员。Excel是全世界最流行的编程语言。对,你没看错,自从微软引入了LAMBDA...
    99+
    2023-05-14
    Python Excel
  • 教你在Excel中调用Python脚本实现数据自动化处理的方法
    目录一、为什么将Python与Excel VBA集成?二、为什么使用xlwings?三、玩转xlwings这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进...
    99+
    2022-11-13
  • 利用Python脚本在Linux平台下实现任务调度与自动化
    利用Python脚本在Linux平台下实现任务调度与自动化在现代的信息技术环境下,任务调度和自动化已经成为了大多数企业必备的工具。而Python作为一种简单、易学且功能丰富的编程语言,在Linux平台下实现任务调度与自动化是非常方便和高效的...
    99+
    2023-10-22
    自动化 Python Linux
  • Bash脚本中如何使用Java API实现自动化测试?
    自动化测试是软件开发中不可或缺的一环,它可以提高测试效率,降低测试成本,同时也可以保证软件质量。在自动化测试中,Bash脚本和Java API是两个非常重要的工具。本文将介绍如何在Bash脚本中使用Java API实现自动化测试。 一、B...
    99+
    2023-10-27
    api django bash
  • 如何用 Shell 脚本实现高效的大数据处理?
    随着数据量的不断增加,大数据处理已经成为了现代科技领域中的一个重要问题。而在处理大数据时,Shell 脚本可以发挥出其强大的功能,帮助我们实现高效的数据处理。本文将为大家介绍如何使用 Shell 脚本实现高效的大数据处理,包括如何处理大文件...
    99+
    2023-09-22
    大数据 shell 函数
  • 如何利用PHP脚本在Linux服务器上实现自动化测试
    在软件开发过程中,自动化测试是非常重要的一环,它可以提高开发效率、保证代码质量,减少人为出错的可能性。本文将介绍如何利用PHP脚本在Linux服务器上实现自动化测试,并提供具体的代码示例。一、准备工作在开始之前,我们需要准备以下工作:一台运...
    99+
    2023-10-21
    自动化测试 linux服务器 PHP脚本
  • 大数据分析中如何使用 bash 脚本实现高效处理?
    大数据分析已经成为了当今最热门的领域之一,它可以帮助企业或组织通过对海量数据进行分析,从而发现有价值的信息和趋势。但是,要处理大数据需要使用高效的工具和技术。在本文中,我们将探讨如何使用 bash 脚本来实现高效的大数据处理。 什么是 Ba...
    99+
    2023-08-10
    大数据 bash 关键字
  • 怎么用Python实现自动化处理每月考勤缺卡数据
    这篇文章主要介绍“怎么用Python实现自动化处理每月考勤缺卡数据”,在日常操作中,相信很多人在怎么用Python实现自动化处理每月考勤缺卡数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python...
    99+
    2023-07-02
  • python怎么使用dabl实现数据处理分析及ML自动化
    这篇文章主要讲解了“python怎么使用dabl实现数据处理分析及ML自动化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python怎么使用dabl实现数据处理分析及ML自动化”吧!dab...
    99+
    2023-06-25
  • PHP关键字在Linux系统中如何实现数组自动化处理?
    PHP作为一种脚本语言,已经成为了Web开发的常用语言之一。在PHP中,数组是一个非常重要的数据结构,它可以存储多个值,并且可以通过索引或者关联键来访问这些值。在Linux系统中,我们可以利用一些PHP关键字来实现数组自动化处理,从而提高开...
    99+
    2023-09-08
    关键字 数组 linux
  • python使用dabl几行代码实现数据处理分析及ML自动化
    目录dabl1、数据预处理2、探索性数据分析3、建模结论数据科学模型开发涉及各种组件,包括数据收集、数据处理、探索性数据分析、建模和部署。在训练机器学习或深度学习模型之前,必须清洗数...
    99+
    2022-11-12
  • Python如何在大数据环境下实现自然语言处理?
    Python是一种广泛使用的编程语言,同时也是自然语言处理(NLP)领域中最流行的语言之一。它有着丰富的库和工具,可以帮助我们在大数据环境下实现自然语言处理。在本文中,我们将介绍Python如何在大数据环境下实现自然语言处理,并且穿插一些演...
    99+
    2023-10-28
    http 大数据 自然语言处理
  • 如何使用Python脚本在Linux中实现远程服务器管理
    如何使用Python脚本在Linux中实现远程服务器管理引言:在现代互联网时代,远程服务器管理成为了一项重要的任务。对于Linux服务器,我们可以使用Python脚本来实现远程管理的各种功能,包括文件传输、执行命令、监控系统等。本文将介绍如...
    99+
    2023-10-22
    Python Linux 脚本
  • sql server编写archive通用模板脚本如何实现自动分批删除数据
    这篇文章主要介绍了sql server编写archive通用模板脚本如何实现自动分批删除数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。做...
    99+
    2022-10-18
  • 如何使用Python中的路径处理大数据在自然语言处理中?
    自然语言处理是计算机科学中的一个重要分支,它旨在使计算机能够理解、解释和生成人类语言。对于自然语言处理的许多应用程序而言,处理大量数据是必不可少的。Python是一种强大而流行的编程语言,它提供了许多用于处理大数据的工具和库。在本文中,我...
    99+
    2023-06-06
    自然语言处理 大数据 path
  • 如何用Python实现自然语言处理中的文本分类?
    自然语言处理(Natural Language Processing,简称NLP)是人工智能领域中的一个重要分支。文本分类是NLP中的一个基本任务,它的目的是将文本分成不同的类别。在本文中,我们将介绍如何使用Python实现自然语言处理中的...
    99+
    2023-11-04
    大数据 二维码 自然语言处理
  • 如何在Python中实现对大数据的快速处理?
    Python是一种高级编程语言,它在数据科学和机器学习领域中被广泛使用。当我们需要处理大数据时,Python中有许多方法可以帮助我们进行快速处理。在本文中,我们将介绍如何在Python中实现对大数据的快速处理,并附上演示代码。 使用Num...
    99+
    2023-11-06
    leetcode 大数据 关键字
  • 如何在PHP中利用Shell脚本实现对象的高效并发处理?
    随着互联网的快速发展,网站的并发访问量也越来越大,如何高效地处理这些并发请求成为了一个亟待解决的问题。而PHP作为一种脚本语言,本身并不支持多线程并发处理,这就需要我们通过其他的方式来实现对象的高效并发处理。本文将介绍如何在PHP中利用S...
    99+
    2023-10-22
    对象 并发 shell
  • python实现接口自动化测试中如何使用pymysql直连数据库
    这篇文章给大家介绍python实现接口自动化测试中如何使用pymysql直连数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。实现步骤1 PyMySQL 安装启动命令行,联网的前提下键入命令: pip install...
    99+
    2023-06-04
  • Python如何在自然语言处理中应用大数据路径?
    自然语言处理(Natural Language Processing, NLP)是计算机科学和人工智能领域的一个分支,它研究如何让计算机理解和处理人类语言。在NLP领域中,大量的数据是必不可少的。如何高效地处理和利用这些数据,成为了NLP...
    99+
    2023-06-06
    自然语言处理 大数据 path
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作