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_bussht_train、...)

【讨论】:

以上是关于xlwings 激活变量工作表名称的主要内容,如果未能解决你的问题,请参考以下文章

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

尝试使用 Xlwings/Python 保存 .xlsm 时出现 Com_Error

Python办公自动化之操作Excel(一)

在 Excel 2016 中,当宏与工作表关联时,VBA 不会激活备用工作表

VBA 打开另一个带有变量的工作簿和工作表

Office 2016 - 下载安装激活后,右键新建菜单中,出现 Micorosoft Excel 97-2003 工作表,而不是 Micorosoft Excel 工作表以及对新建菜单项位置做