主页 > 知识库 > python兼容VBA的用法详解

python兼容VBA的用法详解

热门标签:湛江电销防封卡 郑州智能外呼系统运营商 哈尔滨外呼系统代理商 获客智能电销机器人 佛山防封外呼系统收费 徐州天音防封电销卡 南昌办理400电话怎么安装 电话机器人适用业务 不错的400电话办理

一、简介

有时我们需要向含有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的用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • 基于python requests selenium爬取excel vba过程解析
  • VBA处理数据与Python Pandas处理数据案例比较分析
  • VBA数组用法案例详解
  • 详解bootstrap导航栏.nav与.navbar区别

标签:安康 吕梁 芜湖 绍兴 怀化 吉安 广西 兰州

巨人网络通讯声明:本文标题《python兼容VBA的用法详解》,本文关键词  python,兼容,VBA,的,用法,详解,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《python兼容VBA的用法详解》相关的同类信息!
  • 本页收集关于python兼容VBA的用法详解的相关信息资讯供网民参考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推荐文章