On Sep 11, 1:26 pm, Chris <[EMAIL PROTECTED]> wrote: > On Sep 11, 12:59 pm, "Hamilton, William " <[EMAIL PROTECTED]> wrote: > > > > > > From: Chris > > > > I have a python script that is driving Excel and using the win32com > > > module. However, upon program completion there's still an Excel.exe > > > process running in the background that I must terminate through Task > > > Manager. Reading up on other threads indicate that maybe I still have > > > some Excel objects referenced within my code. Is this why the process > > > doesn't terminate? > > > > The related (I hope) parts of my code is here. > > > > x1App = Dispatch("Excel.Application") > > > Book1 = x1App.Workbooks.Open(ExcelLogPath+"\\outputLog-template.xls") > > > x1App.Visible = 1 > > > for sheets in Book1.Worksheets: > > > if sheets.Name == file_name: > > > sheetExists = True > > > if sheetExists != True: > > > activeSheet = > > > Book1.Worksheets.Add(After=Book1.Worksheets(1)) > > > activeSheet.Name = file_name > > > testNum[file_name] = 0 > > > Book1.Worksheets(file_name).Select() > > > Book1.ActiveSheet.Cells(1+(testNum[file_name]*20),1).Value = "Original > > > File Name" > > > Book1.ActiveSheet.Cells(2+(testNum[file_name]*20),1).Value = > > > file_name > > > Book1.ActiveSheet.Pictures().Insert(output).Select() > > > Book1.SaveAs(Filename=path) > > > x1App.ActiveWorkbook.Close(SaveChanges=0) > > > x1App.Quit() > > > del x1App > > > del Book1 > > > del activeSheet > > > > What am I missing? > > > In my Excel projects, I terminate it with: > > > xlBook.Close() > > xlApp.Quit() > > > I haven't had a problem with Excel staying open after the program ends. > > > (On a tangent, I want to find the person who thought it was a good idea > > to use the same symbol in a font for 1, l, and I and do some unpleasant > > things.) > > > -- > > -Bill Hamilton > > That doesn't really fix the problem as I'm pretty sure its identical > code for > x1App.ActiveWorkbook.Close(SaveChanges=0) > > I think where my problem lies is within my for each loop where I > search to see if the worksheet with the name already exists > for sheets in Book1.Worksheets: > if sheets.Name == file_name: > sheetExists = True > > Since I'm assuming that it creates objects for each of the sheets and > I don't delete them...
Which I'm right... I added this code and now there's no EXCEL.EXE process after my script completes for sheets in Book1.Worksheets: if sheets.Name == file_name: sheetExists = True sheets = None del sheets -- http://mail.python.org/mailman/listinfo/python-list