在上一篇我们已经配置好了环境,本篇我们进入实战。

在进入实战之前,要声明一点,虽然本篇有较多的篇幅来讲述如何使用Excel调用Python脚本,但是这个功能在实际工作中的应用场景极其有限,建议大家了解即可。

对于xlwings的学习和使用,我们应该把更多的精力放在如何通过Python操作Excel上(后续篇章会着重介绍),这才是我们实现办公自动化的方式。

Excel调用Python脚本

1. 无返回值的函数

1-1. 新建Py脚本

新建一个txt文档并打开,然后复制下面的代码进去

import numpy as np

import xlwings as xw

def world():

wb = xw.Book.caller()

wb.sheets[0].range('A1').value = 'Hello World!'

这段代码的含义是:在当前Excel文件的第一个工作表A1单元格输入Hello World!

然后将文件另存为code.py,保存在与Excel文件相同的目录下

新建py文件的方式有很多种,对于使用Python编辑器的同学来说,通过编辑器创建更加方便。

1-2. 调用Py脚本

首先,我们打开VBA编辑器的,输入以下代码:

Sub HelloWorld()

RunPython ("import code; code.world()")

End Sub

这段代码的含义是:调用code.py脚本中的world函数

按下F5运行程序

演示流程如下

处理流程.gif

2. 有返回值的函数

2-1. 新建py文件

import os

import xlwings as xw

@xw.func

def cwf():

return os.getcwd()

上面这段代码含义:获取py文件所在的文件夹路径。

2-2. 单元格中调用py代码

首先在UDF Modules方框里输入code,表明我们要调用的文件名,然后点下图箭头所指Import Functions按钮(这个过程会弹出一个黑色窗口,我们不用理它)

image.png

然后,在任意单元格输入 =cwf() 即可调用code文件里cwf函数,结果返回当前文件路径,如下图所示

image.png

如果我们更改了code.py中的代码,记得要重新点击Import Functions按钮,以便将修改内容同步过来。

下面是流程演示:

处理流程.gif

OK,以上就是在Excel中调用Python的完整流程,下面介绍如何在Python中调用VBA

Python中调用VBA脚本

整个过程非常简单,只需要两步即可,首先我们先编写VBA代码,然后在Python中调用就可以了

1. 编写VBA代码

打开VBA代码编辑器,新建一个模块(插入 - 模块),然后输入以下代码

Function MySum(x, y)

MySum = x + y

End Function

如图所示,然后将Excel保存关闭,注意要保存为xlsm格式

image.png

2. 在Python中调用

在Python编译器中输入以下代码,然后运行

import xlwings as xw

app = xw.App(visible=True,add_book=False)

'设置测试文件的路径

wb = app.books.open(r'C:/Users/zhoux/Desktop/test.xlsm')

'调用VBA脚本

my_sum = wb.macro('MySum')

my_sum(1, 2)

流程演示如下:

处理流程2.gif

Python与Excel的交互到此为止就介绍完了,其实到目前为止,我们介绍的这些功能都是“小菜”,大家了解即可,真正的“硬菜”是使用xlwings来实现Python对Excel的全面操控。这部分教程我们会在后面的篇章继续介绍。

python与excel教程_办公自动化系列(2) | Python与Excel交互教程 - 交互演示相关推荐

  1. python与excel教程_办公自动化系列(1) | Python与Excel交互教程 - 环境搭建

    要实现Python与Excel的交互,我们首先要找到一个连接双方的纽带,它就是xlwings.xlwings是一个python库,支持从Excel中调用Python,也支持通过Python去操作Exc ...

  2. 從turtle海龜動畫 學習 Python - 高中彈性課程系列 9 Python 物件導向介紹

    "Talk is cheap. Show me the code." ― Linus Torvalds 老子第41章 上德若谷 大白若辱 大方無隅 大器晚成 大音希聲 大象無形 道 ...

  3. python自动化测试视频教程_精品系列-悠悠Python自动化测试学习视频,资源教程下载...

    课程名称 精品系列-悠悠Python自动化测试学习视频,资源教程下载 课程目录 第1课-http协议上 .mp4 第1课-http协议下.mp4 第2课-fiddler抓包与测试上.mp4 第2课-f ...

  4. linux pandas教程_这7种Python的全新玩法,你们一定不知道!(附赠Python教程)

    Python第三方模块众多,下面我介绍一些比较实用而又有趣的模块,主要分为爬虫.数据处理.可视化.机器学习.神经网络.股票财经.游戏这7个方面. 主要内容如下: 1.爬虫:相信大部分人都用Python ...

  5. python 书籍 办公 自动化_你们都用Python实现了哪些办公自动化?

    这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理简直是加班族的福音. 自动化办公无非是excel.ppt.word. ...

  6. python的excell库_扣丁学堂Python基础教程之Excel处理库openpyxl详解

    扣丁学堂Python基础教程之Excel处理库openpyxl详解 2018-05-04 09:49:49 3197浏览 openpyxl是一个第三方库,可以处理xlsx格式的Excel文件.pipi ...

  7. 量化投资python教程_零基础入门Python量化投资全套教程,30+经典教材打包送!暑期get新技能就靠它了!...

    量化投资是指使用数理分析.编程.建模等方式,通过对样本数据进行集中比对处理,找到数据之间的关系,制定量化策略,并使用编写的软件程序来执行交易,从而获得投资回报的方式. 在如今的量化投资领域,已经有了无 ...

  8. python批量处理 办公_你们都用Python实现了哪些办公自动化?

    这可能是很多非IT职场人士面临的困惑,想把python用到工作中,却不知如何下手?python在自动化办公领域越来越受欢迎,批量处理简直是加班族的福音. 自动化办公无非是excel.ppt.word. ...

  9. python编码转换语句_好程序员Python教程之字符串编码知识小结

    好程序员Python教程之字符串编码知识小结,提及Python字符串,你会想到什么?是ASCII,还是Unicode?他们之间是如何转换的?字符串编码和字符串有什么区别?接下来好程序员Python教程 ...

最新文章

  1. mysql存储的判断if_if在数据库mysql存储中判断
  2. 寻找唯一特等奖java,大工斩获唯一特等奖!这次,请为我工老师疯狂打call!
  3. HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别
  4. mysql不能正常yum remove怎么办?--noscripts
  5. 开源组件NanUI一周年 - 使用HTML/CSS/JS来构建.Net Winform应用程序界面
  6. RabbitMQ入门:发布/订阅(Publish/Subscribe)
  7. SurfaceFlinger 和 WindowManager
  8. SQL正则表达式的应用 case的灵活应用
  9. 中心极限与大数定理律的关系_21厦大数学考研 | 数列与函数极限复习建议!
  10. 诊断Oracle数据库Hanging问题
  11. 三维扫描仪用于无人机壳体扫描与精密装配
  12. [vba]快速更新表格标题序号
  13. 北达科他州立大学计算机科学专业,2019上海软科世界一流学科排名计算机科学与工程专业排名北达科他州立大学排名第201-300...
  14. 四分位数和百分位数_20种四分位数
  15. 定了!不缴社保的,惨了!
  16. vue3.0 结合element ui 开发后台ui框架
  17. 计算机ps2定义,软件硬件界面接口定义 bt656 硬件接口定义
  18. win10计算机网络设置在哪,Win10系统电脑中的网络状态在哪里查看
  19. 如何理解视频会议体统中的GK?
  20. related job

热门文章

  1. P3243 [HNOI2015]菜肴制作
  2. 人工神经网络ANN的算法总结
  3. io.open和open_在Open Org读书俱乐部,我们让火花飞扬
  4. 美若黎明-我的2016
  5. [AHK]右键单击托盘中的QQ图标退出QQ
  6. X86 LEA指令详解
  7. 知识付费海哥:知识不能改变命运,知识变现才能改变命运
  8. A ConvNet for the 2020s 详解
  9. Android StatusBar 状态栏白底黑字设置
  10. ps 切android图标,快速图标:超越PS插件的切图方法