我正在尝试执行两个操作: 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”
答案 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_bus
,sht_train
,...)