返回顶部
首页 > 资讯 > 后端开发 > Python >python兼容VBA的用法详解
  • 949
分享到

python兼容VBA的用法详解

2024-04-02 19:04:59 949人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

一、简介 有时我们需要向含有VBA代码的excel写入数据,但又不能影响正常的VBA代码执行,起初我使用python的openpyxl模块中函数将数据写入xlsm文件中,写入数据后发

一、简介

有时我们需要向含有VBA代码的excel写入数据,但又不能影响正常的VBA代码执行,起初我使用python的openpyxl模块中函数将数据写入xlsm文件中,写入数据后发现执行VBA代码的按钮消失不见了,于是通过查找原因发现是由于openpyxl对VBA支持并不友好,而对VBA支持友好是xlwings模块。

二、简单介绍下xlwings模块

在这里插入图片描述

1、读取Excel中数据

读取需注意点:
默认情况下,带有数字的单元格被读取为float,带有日期单元格被读取为datetime.datetime,空单元格转化为None;数据读取可以通过option操作指定格式读取。


import xlwings as xw
import os

#创建APP应用
app=xw.App(visible=True,add_book=False)    #visible表示程序运行时是否可见Excel,True表示可见,False表示不可见;add_book表示是否要新建工作簿
file = "数据写入V1.xlsm"
wb=app.books.open(file)                    #打开指定文件


ws = wb.sheets["Sheet1"]                   #工作表引用
#ws.activate()
temp_value = ws["B2"].value                #默认读取B2的值,为浮点型
print(type(temp_value))
print(temp_value)

temp_n = ws["B3"].value                    #默认读取B3的值,这里未空值默认应显示None
print(type(temp_n))
print(temp_n)

temp_value1 = ws["B2"].options(numbers=int).value   #将B2的设置为整数
print(type(temp_value1))
print(temp_value1)

#运行结果

<class 'float'>

100.0

<class 'NoneType'>

None

<class 'int'>

100

>>> 

2、另一种取值单元格值得方式


import xlwings as xw
import os

app=xw.App(visible=True,add_book=False)                
file = "数据写入V1.xlsm"
wb=app.books.open(file)                      #打开指定文件
ws = wb.sheets["Sheet1"]
print(ws.range('B2').value)                  #另一种方式读取B2的值
#运行结果
100.0

三、将数据写入Excel

在这里插入图片描述


import xlwings as xw
import os

#创建APP应用
app=xw.App(visible=True,add_book=False)                
file = "数据写入V1.xlsm"
wb=app.books.open(file)                      #打开指定文件

#工作表引用
ws = wb.sheets["Sheet1"]
a = 6799
b = 2345
c = 1000
info = ws.used_range
#print(info)
nrows = info.last_cell.row             #获取sheet表中最大行
print(nrows)
if ws['B'+str(nrows)]==None:
    ws['B'+str(int(nrows)-1)].value=a
    ws['C'+str(int(nrows)-1)].value=b
    ws['D'+str(int(nrows)-1)].value=c
else:
    ws['B'+str(int(nrows)+1)].value=a
    ws['C'+str(int(nrows)+1)].value=b
    ws['D'+str(int(nrows)+1)].value=c
    
wb.save()                  #保存数据
wb.close()                 #关闭工作簿
app.quit()                

写入后

在这里插入图片描述

到此这篇关于Python兼容VBA的用法详解的文章就介绍到这了,更多相关python兼容VBA的用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python兼容VBA的用法详解

本文链接: https://lsjlt.com/news/135375.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python兼容VBA的用法详解
    一、简介 有时我们需要向含有VBA代码的Excel写入数据,但又不能影响正常的VBA代码执行,起初我使用python的openpyxl模块中函数将数据写入xlsm文件中,写入数据后发...
    99+
    2024-04-02
  • VBA数组用法案例详解
    目录前言具体操作1、VBA数组的定义方法2、数组的赋值和计算3、数组的合并(join)与拆分(split)4、数组的筛选(Filter)5、数组维度的转换(Transpose)6、利...
    99+
    2024-04-02
  • win10兼容性如何?微软详解Windows 10兼容性
    每每遇到Windows系统更新,大家最关心的话题之 微软也承认,兼容性问题不可避免,但一直在努力发现并解决所有的问题,尤其是需要在用户升级之前及时搞定,毕竟升级过去了再发现问题就不好整了。 这主要分为三个方面: 1、应用...
    99+
    2023-06-16
    win10 兼容性 微软 Windows 10兼容性
  • Android SDK中的Support兼容包详解
    背景 来自于知乎上邀请回答的一个问题Android中AppCompat和Holo的一个问题?, 看来很多人还是对这些兼容包搞不清楚,那么干脆写篇博客吧. Support Lib...
    99+
    2022-06-06
    support sdk Android
  • Android setButtonDrawable()的兼容问题解决办法
    Android  setButtonDrawable()的兼容问题解决办法 setButtonDrawable()的兼容问题 API16实现 public v...
    99+
    2022-06-06
    兼容 Android
  • 一文详解Node.contain 函数兼容处理
    目录前言contains方法兼容处理总结前言 好久不写文章了,都不知道跟大家怎么打招呼了,新的一年开始,也应该收心,做一些文字的记录以及分享了。 先说下写这篇文章的由来吧,接到一个...
    99+
    2023-03-08
    Node.contain 函数兼容 Node.contain 函数
  • Android各版本兼容性适配详解
    目录Android 6Android 7Android 8Android 9Android 10Android 11Android 12Android 13Android 6 本文根...
    99+
    2022-12-19
    Android 版本兼容性适配 Android 版本兼容
  • TS类型兼容教程示例详解
    目录类型兼容简单类型兼容普通对象兼容函数兼容参数数量不一致参数类型不一致返回不同类型兼容 因为JS语言不慎过于领过, 真实开发场景中往往无法做到严格一致的类型约束,此时TS就不得不做...
    99+
    2024-04-02
  • webpack项目中使用vite加速的兼容模式详解
    目录前言目的要处理的问题动手共用 index.html共用配置兼容环境变量自动导入资源引入svg-sprite-loader 替代方案其他效果前言 随着公司前端工程越来越大,启动是无...
    99+
    2024-04-02
  • WebSocket协议在Web应用中的兼容性和兼容性解决方案
    随着Web应用的快速发展,实时通信成为了构建现代化网络应用的重要需求。WebSocket协议作为一种基于TCP的全双工通信协议,被广泛应用于实时通信场景,例如在线聊天、多人游戏和实时数据推送等。然而,WebSocket协议在不同的浏览器和操...
    99+
    2023-10-21
    Web应用 兼容性解决方案 WebSocket协议
  • 详解vue3中渲染函数的非兼容变更
    目录渲染函数API变更 Render函数参数 渲染函数签名更改VNode Props 格式化slot统一 移除$listeners $attrs现在包括class和styl...
    99+
    2024-04-02
  • Python有序容器的sort方法详解
    1. sort 方法介绍 容器.sort(key=选择排序依据的函数, reverse=True|False) 可以将有序容器进行排序。 参数 key 是要求传入一个函数,表示将容器...
    99+
    2024-04-02
  • C++ 成员函数详解:对象方法的容器兼容性和迭代器支持
    成员函数是定义在类上下文中,与对象相关联的函数,可访问对象数据和方法。为了使其与容器兼容,自定义类必须提供赋值运算符、相等和不相等运算符、比较运算符。此外,为了支持迭代器,类应提供返回指...
    99+
    2024-04-29
    c++ 成员函数 标准库
  • C++ deque容器的用法详解
    deque(双端队列)是由一段一段的定量连续空间构成,可以向两端发展,因此不论在尾部或头部安插元素都十分迅速。 在中间部分安插元素则比较费时,因为必须移动其它元素。 deque容器的...
    99+
    2024-04-02
  • JS脚本兼容性问题的解决方法
    这篇文章给大家介绍JS脚本兼容性问题的解决方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。这里和大家分享一下解决JS脚本兼容的几个小技巧,关于JS脚本兼...
    99+
    2024-04-02
  • Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
    在前几天的开发中,遇到这么个非常奇葩的异常,有些手机可以运行,有些手机却直接就崩了,今天就把这异常整理下。 首先还是贴上其异常信息 E/AndroidRuntime: FATAL EXCEPTION: ...
    99+
    2022-06-04
    解决办法 兼容性问题 Android
  • javascript中常见的兼容写法
    这篇文章主要讲解了“javascript中常见的兼容写法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript中常见的兼容写法”吧!1 .获取后...
    99+
    2024-04-02
  • 如何解决windows7系统不兼容如何解决windows7系统不兼容方式详细介绍
    windows7系统不兼容的问题是许多用户都是有遇到过,用户在使用win7的情况下有些系统会碰到不兼容的难题,那样如何解决windows7系统不兼容的难题呢,用户们还可以依照下边的如何解决windows7系统不兼容方式详细介绍来完成操控,用...
    99+
    2023-07-10
  • JavaScript获取网页的宽高及如何兼容详解
    很多场景下会需要获取当前网页的宽高来达到一些效果,但是获取网页的宽高这里面还是有一点(hen duo)坑的,这里我进行了总结和详解,若有补充欢迎评论补充~ 方式一:window.in...
    99+
    2024-04-02
  • 一文详解TDSQL PG版Oracle兼容性实践
    TDSQL PG版分布式关系型数据库,是一款同时面向在线事务交易和MPP实时数据分析的高性能HTAP数据库系统。面对应用业务产生的不定性数据爆炸需求,不管是高并发交易还是海量实时数据分析,TDSQL PG版都能够轻松处理。目前TDSQL ...
    99+
    2016-12-12
    一文详解TDSQL PG版Oracle兼容性实践
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作