插上翅膀,让Excel飞起来——xlwings(四)

前言

当年看《别怕,Excel VBA其实很简单》相见恨晚,看了第一版电子版之后,买了纸质版,然后将其送人。而后,发现出了第二版,买之收藏。之后,发现Python这一编程语言,简直是逆天,业余非程序员的福音。人生苦短,我用python。简短几句代码,实现好多自己不敢想的功能。
自学VBA发现对VBA和python,我有着这样几个看法:(只是针对自动化办公)

  • 非专业表哥,只是普通办公,希望偶尔遇到点重复的工作可以自动化一下。VBA对于我来说,要记得东西还是太多了,语法上不简洁。每写一个功能,代码太长了。
  • VBA虽然在很多程序都有接口,但是,应用范围还是略窄,对于一般用户深入学习后,但是,应用场景太少。有任务驱动,才有动力去提高水平。
  • Python运行速度绝对不算快的,但是,绝对比在Excel中运行VBA的速度还是要快很多
  • Python语言简洁(python大法好),模块丰富,有好多大神造好的轮子等着我们去用。
  • Python应用范围广,既能帮我解决偶尔遇到的表格问题,也能和其他各种软件或者平台联接起来。

运用Python自定义宏(仅限Windows)

  1. 准备工作
    1. 安装xlwings模块
    2. 下载模版文件,百度网盘链接:xlwings自定义宏和函数模版

      文件列表

      其中,自定义模版可以修改名称,mymacro为自定义宏的python文件,myfun为自定义函数的python文件。
    3. 设置Excel信任中心,信任对VBA工程对象模型的访问

      信任中心设置
  2. 自定义宏
    用记事本打开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宏。

    执行
  3. 自定义函数
    准备工作是一致的,打开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官方文档。


作者:LuckyFrog
链接:http://www.jianshu.com/p/7d6f53e3e6e9
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://www.cnblogs.com/catgatp/p/7875701.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xlwings是一个用于在Python中操作Excel的模块。它提供了读写Excel文件的功能,并且可以调整Excel文件的表格宽度、字体颜色等。xlwings可以通过引用单元格的行列tuple来操作单元格,也可以将数据存储到单元格中。例如,可以使用xlwings将一个值存储到指定的单元格中,也可以将一个列表存储到一行或一列中。同样,可以使用xlwings读取单个值或一段数据。\[2\]\[3\] 在你提供的示例中,xlwings被用于枚举指定文件夹下的Excel类型文件,并删除这些文件中的K列。首先,使用os模块的listdir函数列出指定文件夹下的所有文件,并将Excel类型的文件路径存储在一个列表中。然后,使用xlwings打开每个Excel文件,获取第一个工作表的行数,并遍历每一行。如果第11列的值不为空,就将其置为空。最后,保存并关闭Excel文件。需要注意的是,在程序结束后,需要使用del app语句来关闭Excel进程,以防止进程残留。\[1\] 总之,xlwings是一个方便的Python模块,可以帮助你实现Excel自动化办公的任务。 #### 引用[.reference_title] - *1* [Python3学习笔记08-Python3读写Excel表之xlwings](https://blog.csdn.net/asanscape/article/details/80372743)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [翅膀,让Excel起来——xlwings(一)](https://blog.csdn.net/weixin_30900589/article/details/98436561)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值