win32com.client Python-Excel任务在通知应用程序退出后仍在运行



我看到了几个类似的问题,但它们似乎都涉及VBA,而不是Python。

这是一个相对较新的错误,所以我怀疑这可能与我现在使用Python 3.7有关。

基本上,使用win32com.client中的Dispatch方法,我可以像往常一样打开一个新的Excel工作簿并进行编辑。然而,由于某种原因,我无法告诉应用程序成功退出。

过去我可以写:self.excel_app.Quit()

但现在,我得到了一个AttributeError。表示Excel.Application没有Quit((属性。同样,这是Python 3.7。发生了什么?

[编辑]相关代码:

import sys
from win32com.client import Dispatch
#...
class X(object):
def __init__(self):
#...
self.excel_app = Dispatch("Excel.Application")
self.report_workbook = self.excel_app.Workbooks.Add()
#...

def close_excel(self):
try:
self.excel_app.Quit()
except Exception as ex:
sys.stdout.write("Could not quit application.n-> ({}) {}n".format(ex.__class__.__name__, ex))
self.excel_app = None

打印到终端的例外情况是:

Could not quit application.
(AttributeError) Excel.Application.Quit

事实证明,我的错误是由于我仍在使用线程。线程作为尝试执行此操作的对象的基类。显然,它已经不能很好地与DispatchExcel对象配合使用了,无论如何,我都在努力摆脱Threads。

最新更新