【问题标题】:Move worksheet within a workbook to the end [duplicate]将工作簿中的工作表移动到末尾[重复]
【发布时间】:2020-11-13 12:30:36
【问题描述】:

使用 xlwings,我试图将工作簿中的工作表移到末尾。例如,工作簿包含以下工作表的集合:
Sheet1, Sheet2, Sheet3

如何在 Sheet3 之后移动 Sheet1 以获得以下订单?
Sheet2, Sheet3, Sheet1

如果我将ws1.api.Move(Before=ws3.api)Before 参数一起使用,则该行按预期工作,但与After 参数不一起使用。见示例代码:

import xlwings as xw

wb = xw.Book("test.xlsx")

ws1 = wb.sheets['Sheet1']
ws3 = wb.sheets['Sheet3']

ws1.api.Move(After=ws3.api)

【问题讨论】:

    标签: python excel pywin32 xlwings


    【解决方案1】:

    我自己找到了解决方案,这个问题已经回答了here。您必须在After 参数之前添加None

    import xlwings as xw
    
    wb = xw.Book("test.xlsx")
    
    ws1 = wb.sheets['Sheet1']
    ws3 = wb.sheets['Sheet3']
    
    ws1.api.Move(None, After=ws3.api)
    

    严格来说,这个问题似乎与 pywin32 相关而不是 xlwings,因为显然.api 访问底层 pywin32 对象,如 here 所述

    【讨论】:

      猜你喜欢
      • 2012-08-12
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-16
      • 2021-08-29
      • 2020-05-26
      • 1970-01-01
      相关资源
      最近更新 更多