xlwings激活可变工作表名称

时间:2018-12-08 21:36:02

标签: xlwings

我正在尝试执行两个操作: 1)使用xlwings检查工作簿中是否存在工作表 2)使用变量名称通过xlwings激活工作表。

工作表名称是一个变量,所以我不能使用sheets [0]选项或sheets ['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 个答案:

答案 0 :(得分:0)

您应该稍微重写代码以使其正常工作。通过打开新的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,...)