xlwings 激活变量工作表名称
Posted
技术标签:
【中文标题】xlwings 激活变量工作表名称【英文标题】:xlwings activate variable sheet name 【发布时间】:2019-05-10 06:18:43 【问题描述】:我正在尝试执行两个操作: 1) 使用 xlwings 检查工作簿中是否存在工作表 2) 使用变量名使用xlwings激活工作表。
工作表名称是一个变量,所以我不能使用 sheet[0] 选项或 sheet['name'] 选项。
import xlwings as xw
app = xw.apps.active
wb = app.books.active
key1 = 'BUS'
if key1 in wb:
sht = wb.sheets.activate(key1)
else:
sht = wb.sheets.add(key1)
我得到错误: AttributeError: 'Sheets' 对象没有属性 'activate'
【问题讨论】:
【参考方案1】:您应该稍微重写您的代码以使其正常工作。通过打开一个新的 Excel 工作簿并运行代码几次来对此进行测试。
# python 3.7.3
# xlwings 0.15.8
import xlwings as xw
app = xw.apps.active
wb = app.books.active
key1 = 'BUS'
if key1 in [sh.name for sh in wb.sheets]:
sht = wb.sheets[key1]
else:
sht = wb.sheets.add(key1)
变化:
您应该迭代工作表名称而不是工作表对象 无需激活xlwings
中的工作表。一旦您将要处理的工作表分配给sht
变量,所有操作都将在此工作表上执行。您还可以为每个工作表创建一个单独的变量(例如sht_bus
、sht_train
、...)
【讨论】:
以上是关于xlwings 激活变量工作表名称的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 Xlwings/Python 保存 .xlsm 时出现 Com_Error
在 Excel 2016 中,当宏与工作表关联时,VBA 不会激活备用工作表
Office 2016 - 下载安装激活后,右键新建菜单中,出现 Micorosoft Excel 97-2003 工作表,而不是 Micorosoft Excel 工作表以及对新建菜单项位置做