Excel: Python 如何干掉 VBA 系列 乙

以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/k2XtfXS3GUt4r2QhizMOVg

创建工作表格

创建表格

xlwings 就可以协助创建插入了宏的 excel 表格。

先找到一个心满意足的目录,一般我们称之为工作目录,比如我选择在 D 盘根目录,打开文件管理器,点击路径栏空白部分,然后输入 cmd 并回车

输入回车后,系统会自动弹出命令行终端,并且自动把命令行终端的当前路径设置到上面的工作目录中

在里边输入

xlwings quickstart fishfeed

上面的指令会在当前目录下创建文件夹 fishfeed,并在文件夹内创建两个文件

fishfeed.py
fishfeed.xlsm

文件 fishfeed.xlsm 是 xlwings 自动插入了宏的表格,我们后边就在这个表格里插入和调用自定义 python 函数。

文件 fishfeed.py 是 python 脚本文件,里边已经创建了 xlwings 的应用示例,包含有一个简单的 hello 示例函数,文件内容如下

import xlwings as xwdef main():wb = xw.Book.caller()sheet = wb.sheets[0]if sheet["A1"].value == "Hello xlwings!":sheet["A1"].value = "Bye xlwings!"else:sheet["A1"].value = "Hello xlwings!"@xw.func
def hello(name):return f"Hello {name}!"if __name__ == "__main__":xw.Book("fishfeed.xlsm").set_mock_caller()main()

Excel 工作簿和 python 脚本的交互

从文件 fishfeed.py 的代码内容来看

xw.Book("fishfeed.xlsm").set_mock_caller()

这行代码会将表格文件 fishfeed.xlsm 和本脚本代码建立关联。当执行

xw.Book.caller()

时,返回的就是 fishfeed.xlsm 表格代表的工作簿,存放在变量 wb。

wb.sheets[0]

通过 xlwings 工作簿的 sheets 成员获取工作表,后边的 [] 内的数值代表工作表序号,序号从 0 开始(0,1,2,3…)。

获取到工作表后,通过工作表的操作符 [] 可以指定访问和读写的单元格内容

sheet["A1"].value = "Bye xlwings!"

上面这行代码表示将字符串 Bye xlwings! 内容写入工作表 sheet 的 A1 单元。

接下来看看运行效果,双击打开 excel 文件 fishfeed.xlsm,点击工具栏的 xlwings,然后直接点击最左边的执行按钮 Run main

在上面的效果里,当执行 Run main 时,xlwings 自动直接执行了一遍 python 脚本文件,但 python 脚本文件中还有其它的自定义函数未被使用,下面来看看怎么插入 python 脚本文件提供的自定义函数。

excel 调用自定义 python 函数

脚本文件 fishfeed.py 里还实现了一个函数 hello()

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

hello() 函数的用途是将输入的参数简单拼接在字符串 hello 之后,然后返回拼接后的结果。

在 excel 单元格里插入 python 自定义函数与其它 excel 自带函数是一样的书写格式,但插入的时候有一点需要注意,先看看效果

注意:在任何单元格里插入自定义函数之前都必须先选中该单元格,然后点击工具栏里的按钮 Import Functions。如果你发现插入的自定义 python 函数没有发生作用,可以尝试点击一下工具栏里的按钮 Import Functions

至于其它的自定义功能的函数实现完全可以照着 hello() 函数格式来实现。

未完待续,下期更精彩。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/216692.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tcon基础知识

1、TCON,就是 Timing Controller 的缩写。从主芯片输出的要在 TFT 显示屏上显示的数据,在经过 TCON 模块后可以变换生成 Panel 可以直接利用的 DATA 信号和驱动器(包括 source driver 和 gate driver)的控制信号。 TV 市场上 TCO…

python-爬取壁纸

代理池的,防止IP 被封 找到图片真实地址 现在看到的只是图片的预览地址 (previews) 1.检查: 2.鼠标变为箭头时查看网页源代码 关于怎样在源代码中找到图片的真实地址 ??? 为什么在源代码界面 ctrl f 时候搜索的是 .png ??? 首先图片地址是以 .j…

恢复出厂设置后在 Android 上恢复照片的 6 种常用方法

恢复出厂设置可帮助您删除电子设备的所有信息并将其恢复到原始系统状态。但是,如果您不小心按下了恢复出厂设置按钮并从 Android 设备中删除了所有难忘的照片,该怎么办?好吧,您无需担心,因为可以通过以下一些方法来恢复…

Unity中Shader URP的安装与设置

文章目录 前言一、URP安装1、Window -> Project Manager -> 搜索 Render 二、URP设置1、创建一个URP配置文件2、渲染管线的修改(当为空时,使用的是 BuildIn Render Pipeline)3、这时我们新建一个对象。使用的材质球默认使用 URP 默认Sh…

UI设计中的肌理插画是什么样的?

肌理插画本质也和扁平插画差不多,相较扁平插画,肌理插画的层次感、细节更多,也会更立体生动。 肌理插画风格没有描边线,画面轻快,通过色块的明暗来区分每个元素,有点像色彩版的素描,但更简单&a…

第一个“hello Android”程序

1、首先安装Android studio(跳过) Android Studio是由Google推出的官方集成开发环境(IDE),专门用于Android应用程序的开发。它是基于JetBrains的IntelliJ IDEA IDE构建的,提供了丰富的功能和工具&#xff0…

计算机视觉(P2)-计算机视觉任务和应用

一、说明 在本文中,我们将探讨主要的计算机视觉任务以及每个任务最流行的应用程序。 二、图像内容分类 2.1. 图像分类 图像分类是计算机视觉领域的主要任务之一[1]。在该任务中,经过训练的模型根据预定义的类集为图像分配特定的类。下图是著名的CIFAR…

【虹科分享】基于Redis Enterprise,LangChain,OpenAI 构建一个电子商务聊天机器人

如何构建你自己的商务聊天机器人?注意哦,是你自己的聊天机器人。一起来看看Redis Enterprise的向量检索是怎么帮你实现这个愿望的吧。 鉴于最近人工智能支持的API和网络开发工具的激增,似乎每个人都在将聊天机器人集成到他们的应用程序中。 …

vue中预览pdf的方法

使用vue-pdf 备注&#xff1a;这里只介绍了一页的pdf <div class"animation-box-pdf"><pdf :src"http://xxxx" /> </div>import Pdf from vue-pdf // src可以是文件地址url&#xff0c;也可以是文件流blob&#xff08;将blob转成url&a…

Python编程进阶:轻松掌握多线程和多进程

大家好&#xff0c;今天我们将讨论如何利用Python执行多线程和多进程任务。它们提供了在单个进程或多个进程之间执行并发操作的方法&#xff0c;并行和并发执行可以提高系统的速度和效率。在讨论多线程和多进程的基础知识之后&#xff0c;我们还将讨论使用Python库实现它们的实…

HarmonyOS4.0从零开始的开发教程12给您的应用添加弹窗

HarmonyOS&#xff08;十&#xff09;给您的应用添加弹窗 概述 在我们日常使用应用的时候&#xff0c;可能会进行一些敏感的操作&#xff0c;比如删除联系人&#xff0c;这时候我们给应用添加弹窗来提示用户是否需要执行该操作&#xff0c;如下图所示&#xff1a; 弹窗是一种…

智慧路灯杆如何实现雪天道路安全监测

随着北方区域连续发生暴雪、寒潮、大风等气象变化&#xff0c;北方多地产生暴雪和低温雨雪冰冻灾害风险&#xff0c;冬季雨雪天气深度影响人们出行生活&#xff0c;也持续增加道路交通风险。 智慧路灯杆是现代城市不可或缺的智能基础设施&#xff0c;凭借搭载智慧照明、环境监测…

跨境电商如何利用跨境客服软件提升销售额

随着全球化的推进&#xff0c;跨境电商成为了许多企业拓展市场的重要途径。然而&#xff0c;跨境电商面临着语言、文化、时差等多种挑战&#xff0c;为了提供更好的客户服务并提升销售额&#xff0c;跨境电商需要利用跨境客服软件。本文将探讨跨境电商如何利用跨境客服软件来提…

STM32的看门狗(WDG)

WDG&#xff08;Watchdog&#xff09;看门狗 看门狗可以监控程序的运行状态&#xff0c;当程序因为设计漏洞、硬件故障、电磁干扰等原因&#xff0c;出现卡死或跑飞现象时&#xff0c;看门狗能及时复位程序&#xff0c;避免程序陷入长时间的罢工状态&#xff0c;保证系统的可靠…

5G工业物联网网关,比4G工业网关强在哪里?

​随着5G技术的广泛应用&#xff0c;越来越多的行业开始探索如何利用5G网络提升效率和创新能力。其中&#xff0c;工业物联网领域是受益最大的领域之一。作为连接物联网设备和网络的关键组件&#xff0c;5G工业物联网网关在这个变革中发挥着至关重要的作用。本文将深入探讨5G工…

postman脚本生成可执行文件(6)

一.通过Python脚本&#xff08;executescript.py&#xff09;执行newman指令 #!usr/bin/python import subprocess from datetime import datetimeclass Newman_automate():Newman_automate():该类主要是定义postman脚本执行__path:cmd命令行中执行newnan脚本指令&#xff08;…

桌面便签软件哪个好用?可以放在桌面上的便签软件使用哪个

在现代快节奏的生活中&#xff0c;我们时常感到生活与工作的节奏难以协调。繁琐的工作日程与待办任务繁杂交织&#xff0c;往往让我们束手无策&#xff0c;无法高效地进行协调与分配。 桌面便签工具成为了我们处理这些挑战的得力助手。它不仅能够随时提醒我们完成任务&#xf…

three.js(一)

文章目录 three.js环境搭建正文补充 示例效果知识点补充1:一个标准的html知识点补充2:原生的前端框架和Vue框架的区别原生的前端框架Vue框架声明式编程和响应式编程 three.js环境搭建 正文 搭建 Three.js 的环境通常包括以下几个步骤&#xff1a; 1.创建项目目录&#xff1a…

从零开始:VuePress2 + GitHub Pages 搭建你的第一个免费博客网站

可能你也想拥有一个属于自己的博客网站&#xff0c;但是自己搭个博客网站不知道从何下手&#xff0c;而且还需要租个云服务器&#xff0c;虽然一个月只需几十块钱&#xff0c;但是我们的博客网站是要长期维护的&#xff0c;日积月累也要不少钱呢。 现在我就教你用 VuePress2 …

Linux的基本指令和权限的知识

学前的建议&#xff1a;大家不要太关注指令是啥&#xff0c;记不住怎么办&#xff08;没事&#xff0c;想用时去查就好了&#xff09;&#xff0c;这篇文章重点部分是围绕指令的周边知识。毕竟指令是“死肌肉”&#xff0c;而一些关于Linux和操作系统的理论知识才是最重要滴&am…