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)
下面的代码中有更多的功能,但它的基本 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)