xlwings excel(四)
前言
当年看《别怕,Excel VBA其实很简单》相见恨晚,看了第一版电子版之后,买了纸质版,然后将其送人。而后,发现出了第二版,买之收藏。之后,发现Python这一编程语言,简直是逆天,业余非程序员的福音。人生苦短,我用python。简短几句代码,实现好多自己不敢想的功能。
自学VBA发现对VBA和python,我有着这样几个看法:(只是针对自动化办公)
- 非专业表哥,只是普通办公,希望偶尔遇到点重复的工作可以自动化一下。VBA对于我来说,要记得东西还是太多了,语法上不简洁。每写一个功能,代码太长了。
- VBA虽然在很多程序都有接口,但是,应用范围还是略窄,对于一般用户深入学习后,但是,应用场景太少。有任务驱动,才有动力去提高水平。
- Python运行速度绝对不算快的,但是,绝对比在Excel中运行VBA的速度还是要快很多
- Python语言简洁(python大法好),模块丰富,有好多大神造好的轮子等着我们去用。
- Python应用范围广,既能帮我解决偶尔遇到的表格问题,也能和其他各种软件或者平台联接起来。
运用Python自定义宏(仅限Windows)
- 准备工作
- 安装xlwings模块
- 下载模版文件,百度网盘链接:xlwings自定义宏和函数模版 密码: 2dut
- 其中,自定义模版可以修改名称,mymacro为自定义宏的python文件,myfun为自定义函数的python文件。
设置Excel信任中心,信任对VBA工程对象模型的访问
自定义宏
- 用记事本打开mymacro0,输入下列语句:
import xlwings as xw
@xw.sub
def my_macro():
wb = xw.Book.caller()
wb.sheets[0].range('A1').value = wb.name
则宏名称为my_macro的宏就编写好了,将工作簿的名称输入到A1单元格。自定义宏只需要前两句不变,后面内容自己编写,即自定义宏需要以下面的语句为开头
import xlwings as xw
@xw.sub
运行方式:先alt+F8运行ImportPythonUDFs内置宏,导入我们的自定义宏和函数,导入后,再运行我定义的my_macro宏。
- 自定义函数
准备工作是一致的,打开myfun0,写入第一个自定义函数:
import xlwings as xw
@xw.func
def myfun():
wb = xw.Book.caller()
return wb.name
注意,开头语句为@xw.func而不是@xw.sub了,然后函数相对于宏,有返回值,所以用了return语句。自定义好函数之后,刚可以像Excel自带函数一样的去使用了。如在A1单元格输入”=myfun()",则会得到工作簿的名称。
结束
本文给出了xlwings模块自定义宏和函数的模版,然后简单介绍了如何去定义宏和函数。注意:
- 一个python文件,只能定义一个宏或者函数,所以模版中已经默认分别给出了三个宏和函数文件,方便直接使用。
- python文件的名称和相对文件位置不能改变,Excel文件的文件位置不能改变,名称可以改变。如需修改,请参考xlwings官方文档。
xlwings excel(四)的更多相关文章
- 插上翅膀,让Excel飞起来——xlwings(四)
前言 当年看<别怕,Excel VBA其实很简单>相见恨晚,看了第一版电子版之后,买了纸质版,然后将其送人.而后,发现出了第二版,买之收藏.之后,发现Python这一编程语言,简直是逆天, ...
- Excel四象限散点图的制作方法
Excel中四象限散点图带文本数据标签,可以在散点图的基础上进行一些设置即可得到,无需第三方插件或者宏代码,非常方便,以office2013为例,效果如下: 步骤: 1.准备好数据源,选中两列数据源( ...
- xlwings excel(三)
App相当于Excel程序,Book相当于工作簿.N个Excel程序则由apps表示,N个工作簿由books表示. 对工作簿的操作 #导入xlwings模块 import xlwings as xw ...
- xlwings excel(一)
python操作Excel的模块,网上提到的模块大致有:xlwings.xlrd.xlwt.openpyxl.pyxll等,他们提供的功能归纳起来有两种:一.用python读写Excel文件,实际上就 ...
- xlwings excel(二)
常用函数和方法 Book 工作簿常用的apiwb=xw.books[‘工作簿名称'] wb.activate()激活为当前工作簿 wb.fullname 返回工作簿的绝对路径 wb.name 返回工作 ...
- python xlwings Excel 内容截图
import xlwings as xw from PIL import ImageGrab def excel_save_img(path, sheet=0, img_name="1&qu ...
- asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台
分享: 腾讯微博 新浪微博 搜狐微博 网易微博 腾讯朋友 百度贴吧 豆瓣 QQ好友 人人网 作者:王春天 原文地址:http://www.cnblogs.com/spring_ ...
- C#NPOI对Excel的操作、导入导出时异常处理、最全的NPOI资料在这里~
一.Excel理论知识 最新版NPOI2.4.1链接:https://pan.baidu.com/s/1iTgJi2hGsRQHyw2S_4dIUw 提取码:adnq • 整个Excel表格叫做工作 ...
- R语言-文本挖掘
---恢复内容开始--- 案例1:对主席的新年致辞进行分词,绘制出词云 掌握jieba分词的用法 1.加载包 library(devtools) library(tm) library(jiebaR) ...
随机推荐
- eclipse快捷键记录
转自:http://blog.csdn.net/siphiababy/article/details/74179684 ctrl+2+L这个快捷键可自动补全代码,极大提升编码效率! 注:ctrl和2同 ...
- Vue仿网易云PC端的网页
贴个网址:https://github.com/wangjie3186594/-PC- 声明一下:这个网页没做完!没做完!没做完! 本人新人一枚,按照的是我当前的学习进度做的项目,很多效果未 ...
- 【18.69%】【codeforces 672C】Recycling Bottles
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- node-sass安装报错
npm install --save-dev node-sass --registry=https://registry.npm.taobao.org --disturl=https://npm.ta ...
- 洛谷——P1160 队列安排(链表的基础操作)
#include<bits/stdc++.h> using namespace std; ]; list<int> stus; list<];//用来存放每一项的迭代器 ...
- Team Foundation Server 2015使用教程【1】:团队项目创建
- linux查看文件内容跳到文件底部和回到文件顶部的快捷键
有时候需要查看一些日志文件,然后要从底部开始查看的话 可以按 shift+g 即可跳到文件底部 要返回文件顶部的时候 按 gg即可
- 使用idea构建Hibernate5项目
使用工具:IntelliJ IDEA 2017.2.5 x64 MySql-8.0.1 hibernate-release-5.3.1.Final 导入的jar包: 以及连接MySql的jdbc包.和 ...
- python基础试题(一)
1.执行 Python 脚本的两种方式 1.python 进入解释器 2.python 1.py 执行文件 limux里 ./1.py 2.简述位.字节的关系 8位1个字节.计算机处理以字节为单位,存 ...
- 超简单!pytorch入门教程(三):构造一个小型CNN
torch.nn只接受mini-batch的输入,也就是说我们输入的时候是必须是好几张图片同时输入. 例如:nn. Conv2d 允许输入4维的Tensor:n个样本 x n个色彩频道 x 高度 x ...