python操作excel数据处理程序(python导入excel数据)
admin
2022-11-22 22:51:08
0次

这次我们会介绍如何使用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呢?主要有以下三点理由:

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

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

二、为什么使用xlwings?

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

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

图片来自早起Python

xlwings的入门使用这里不多做讲解,如果大家还不了解,先看看我之前写的入门介绍: xlwings,让excel飞起来!

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

pip install python

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

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

xlwings addin install

出现下面提示代表集成插件安装成功。

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的交互。

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

xlwings quickstart ProjectName

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

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

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

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

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

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

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中创建一个按钮,并设置默认的宏,变成一个触发按钮。

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

同样的,我们可以把鸢尾花数据集自动导入到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,简直法力无边。

ps:【项目】淘宝项目邀请用户即可获取收益

ps:【活动】支付宝大额红包点击扫码领取

ps:【本站主题】自适应资讯类的网站主题

相关内容

热门资讯

中国游客数量急剧下降,日本旅游... 据《日经亚洲》消息,日本官方10月8日公布的数据显示,由于中国游客数量急剧下降,日本外国游客的旅游支...
文旅新探|西藏拉萨:行走古城,...   新华社拉萨10月9日电 题:西藏拉萨:行走古城,读懂街巷里的文化  新华社记者春拉  今年国庆假...
“藏蓝身影” 守护琅琊文旅出圈... 齐鲁网·闪电新闻10月9日讯 在刚刚过去的国庆假期,琅琊古城登上全国TOP10热门景区榜单。流量火爆...
万木鎏金染林海 内蒙古根河解锁... 原标题:万木鎏金染林海 内蒙古根河解锁限定秋色十月初,“中国冷极”内蒙古根河迎来秋色最佳观赏期。白桦...
2026年国庆节假期 国内出游... 2026年国庆节假期,全国文化和旅游市场平稳有序。经文化和旅游部数据中心测算,国庆节假期7天,全国国...
秋意渐浓!枣庄薛城龙潭公园秋日... 齐鲁网·闪电新闻10月9日讯 秋日时节,枣庄薛城龙潭公园秋意渐显,园内林木错落、层林渐染,荷塘碧水澄...
从“一夜爆红”到“持续长红”,... 参考消息网10月9日报道(文/徐剑梅)在网络和社交媒体时代,一座城市“一夜爆红”不难,难在可持续发展...
【观澜速递】鸣沙山月牙泉景区调... 尊敬的游客朋友们:为保障广大游客安全有序地参观鸣沙山月牙泉景区,最大限度满足中外游客的旅游参观需求,...
香港国庆假期旅游市场观察:长假... 国庆假期,香港廉政公署的“一九七四”咖啡厅化身为复古“303巴士站”,经典廉署咖啡杯与写着“诚信大道...
文旅市场火爆!国庆假期服务消费... 记者 辛圆据央视新闻消息,国家税务总局利用增值税发票数据,对国庆假期相关消费行业销售收入情况进行分析...
景区开始“抢人”了:NPC年薪... 最近,一条“景区花3000万元招聘100名NPC”的消息冲上热搜。山西晋城司徒小镇宣布计划投入300...
年轻人旅游开始“带着家走”:房... 这个国庆假期,房车又火了一把。随着长假带来的跨城深度游需求增加,越来越多的人开始选择开着房车出门,把...
红色资源持续释放吸引力 石家庄... 10月7日,携程平台发布《2026中秋国庆出行报告》,报告公布了中秋国庆假期红色旅游热门城市TOP1...
“超级黄金周”收官:奔县游走红... 10月7日,国庆假期收官。对众多“请3休13”、中秋国庆连玩的游客来说,这也是这个超长假期画句号的日...
祁连十万游客涌入 当地启用学生... 封面新闻记者 赖芳杰 杨霁月国庆期间,常住人口仅五万的青海祁连县,单日涌入超十万游客,全县酒店民宿一...
国庆假期北京接待游客2345万... 新华社北京10月7日电(记者杨淑君)记者7日从北京市文化和旅游局获悉,国庆假期,北京累计接待游客23...
超级黄金周收官!AI伴游交互量... 《科创板日报》10月7日讯(记者 徐赐豪),超长假日即将结束,“双节连玩”加持下,这个“超级黄金周”...
关注假日文旅丨唤醒城市记忆 工... 齐鲁网·闪电新闻10月7日讯山东工业遗产丰富,这个假期,一批活化项目凭借全新的创意让旧厂房“苏醒”,...
【好评中国】中安时评 | 以“...   一次国风旅拍,一场农事体验,一段通过VR进入虚拟世界的旅程,都可以成为旅行中的一段特别体验,也会...
来中国体验“科技游” 来源:经济日报随着入境游不断发展,海外游客的行程清单逐渐发生变化:不再仅仅打卡长城、故宫等经典地标,...