【问题标题】:xlwings activate variable sheet namexlwings 激活变量工作表名称
【发布时间】: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'

【问题讨论】:

    标签: xlwings


    【解决方案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、...)

    【讨论】:

      猜你喜欢
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      相关资源
      最近更新 更多