试图通过python改变Excel_sheet,并完全混淆进程恢复。python win32com关闭Excel进程
import win32com.client
class XlsClass:
def __init__(self ,filename=None ,*,Visible=False ,Alerts=False):
self.xlApp = win32com.client.Dispatch('Excel.Application')
self.xlApp.Visible = Visible
self.xlApp.DisplayAlerts = Alerts
if filename:
self.filename = filename
self.xlBook = self.xlApp.Workbooks.Open(filename)
else:
self.xlBook = self.xlApp.Workbooks.Add()
self.filename = ''
def __del__(self):
self.xlBook.Close()
self.xlApp.Quit()
有时代码工作很好,但有时Python会引发错误 就像“self.xlApp.Visible不能进行设置?”。 这总是在一个循环中发生的就像:
for fname in filelist:
xlbook = XlsClass(fname)
#do something
然后我就检查了我的“windowstasksmanager”和注意
xlbook = Dispatch('Excel.Application')
西港岛线创建一个名为“EXCEL.EXE * 32”的过程。 当我输入'xlbook.Quit()'时,过程仍然存在!? 因为这个残留过程,所以可能是'不能设置'的错误? 当我把func'Dispatch'调用后,我该如何完全关闭它?
del xlbook
无法杀死进程,所以它是如何工作的?
英文不好,等待帮助....谢谢。
============================================== ==
2014年3月10日: 我赶上再次错误和捕捉追踪...
Traceback (most recent call last):
File "C:\work_daily\work_RecPy\__RecLib\XlsClass.py", line 9, in __init__
self.xlApp.Visible = Visible
File "C:\Program Files\python33\lib\site-packages\win32com\client\dynamic.py",
line 576, in __setattr__
raise AttributeError("Property '%s.%s' can not be set." % (self._username_,attr))
AttributeError: Property 'Excel.Application.Visible' can not be set.
我试图 del self.xlApp 或 xlbook = None 创建一个新的XlsClass(前),但似乎没有工作...
2014-03-07
Tpoy
+0
对不起,我会更新它,如果错误再次提高。 –