python自动化操作excel,用Python完成Excel的常用操作-简书

  python自动化操作excel,用Python完成Excel的常用操作-简书

  Excel是世界上最流行的编程语言。Excel已经可以实现编程语言的算法,所以具有图灵完备性。和JavaScript、Java、Python一样,今天通过本文介绍Python数据自动处理的相关知识。有兴趣的朋友来看看吧。

  

目录
一、为什么Python要和Excel VBA集成?二、为什么要用xlwings?3.玩xlwings。这次将介绍如何使用xlwings集成Python和Excel数据工具,更方便的处理日常工作。

  说起Excel,绝对是数据处理之王。虽然已经诞生30多年,但在全球仍有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集成?

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

  如果不精通VBA,可以直接用Python写分析函数进行Excel运算,不用VBA;与Python VBA相比,Python运行速度更快,代码编写更简洁灵活。Python中有很多优秀的第三方库,可以节省大量的代码时间。对于Python爱好者来说,pandas、numpy和其他数据科学库可能已经非常熟悉使用了。如果能把它们用在Excel数据分析中,那就更厉害了。

  

二、为什么使用xlwings?

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

  但与其他库相比,xlwings在性能上几乎是最好的,xlwings可以通过Excel宏调用Python代码。

  图片来自早起Python

  这里不解释xlwings的介绍。如果你还不知道,请看一下我之前写的介绍:xlwings,让excel飞起来!

  安装xlwings非常简单,可以通过命令行的pip快速安装:

  pip安装python

  安装xlwings后,需要安装xlwings的Excel集成插件。在安装之前,您需要关闭所有Excel应用程序,否则会报告错误。

  另外,在命令行中输入以下命令:

  xlwings加载项安装

  以下提示表明集成插件已成功安装。

  xlwings和插件安装完成后,打开Excel,你会在工具栏中发现一个xlwings的菜单框,说明xlwings插件安装成功,它充当了VBA调用Python脚本的桥梁。

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

  步骤很简单:

  1.现状

  t;文件"选项卡上,转到"自定义>选项"。

  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,简直法力无边。

  到此这篇关于教你在Excel中调用Python脚本实现数据自动化处理的文章就介绍到这了,更多相关Python数据自动化处理内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: