xlwings 上下文管理器在调用 app.kill() 时调用 pywintypes.com_error

xlwings context manager invoking pywintypes.com_error when invoking app.kill()

下面的代码中有更多的功能,但它的基本 xlwings 打开、保存和关闭功能仍然调用 pywintypes.com_error: (-2147023170, 'The remote procedure call failed.', None, None)。请帮忙,因为我已经尝试了多种解决方案,但尚未找到有效的解决方案。

import xlwings as xw

def manipulation():
       with xw.App(visible=True) as app:
          wb = xw.Book(filePath)
          sheet = wb.sheets['SheetName']
          wb.save(path)
          wb.close()
          app.kill()

如果有人可以帮助我,或者如果您需要更多代码,请告诉我。谢谢!

context manager 的全部意义在于你不再需要手动退出应用程序(如果在函数结束之前发生异常,它甚至会被正确清理。所以只需离开离开 kill(如果需要,它是上下文管理器的一部分)。您还应该确保使用 app 对象,而不是通过执行 app.books 来依赖活动应用程序而不是使用 xw.Book。编辑:也不要使用 wb.close(),因为 xlwings 需要至少打开一个工作簿才能与 Excel 对话。它将由应用程序上下文管理器自动关闭.

import xlwings as xw

def manipulation():
    with xw.App(visible=True) as app:
       wb = app.books.open(filePath)
       sheet = wb.sheets['SheetName']
       wb.save(path)