norseman wrote:
Tim; Finally got a chance to test your snippet. Thank you for it!I took the liberty of flushing it out a bit. ================ #!/--- # import os import win32com.client excel = win32com.client.Dispatch( 'Excel.Application' ) excel.Visible=1 # shows the spreadsheet (can be handy) xlCSV = 6 # substitute for list generation list = ["c:\\temp\\test.xls", "c:\\temp\\test1.xls"] for nm in list: csv = os.path.splitext( nm )[0] + '.csv' print "Procesing file:", csv if os.path.exists(csv): # window$ won't auto overwrite os.unlink(csv) wb = excel.Workbooks.Open( nm ) wb.SaveAs( csv, xlCSV ) print wb.Close() # requires manual verification # eliminating unattended runs #wb.Exit() & wb.Quit() # generate ERROR(s) - no such thing(s) # leaving Excel open excel.Visible=0 # actually closes Excel if no sheet open # verified via task manager print "Check to see if this worked." # end of file ================= The above does in fact work. Using the above I have a few questions. Documentation on xlCSV came from where? " on .Workbooks.Open(file.xls) came from ??? " on .SaveAs( filename, xlCSV ) came from ??? " on .Close() came from ???
MSDN has rather extensive documentation on the Excel object model, although it is somewhat spread out. Search for "Excel object model".
I cheated on xlCSV. That's the name of the symbol, and I believe it will even be available as win32com.client.constants.xlCSV after you instantiate the application, but I just searched the web for "xlCSV" and hard-coded the 6.
Tell me about the lack of the .Exit() and/or .Quit(), please.
Workbooks don't exit or quit. Workbooks can be closed, but exit is something that applies to the application (excel, in your case). You should also be able to say
excel = None to get rid of the app.
I ran out of time today. Is it possible to send something like an <enter> keystroke to a Window (<yes><no>) box if it accepts same from actual keyboard? May not work anyway since .Close() hangs (in interactive) awaiting it's answer.
The Workbook.Close method accepts parameters; you should be able to get it to skip the dialog. I believe that wb.Close( False ) should do this.
-- Tim Roberts, [EMAIL PROTECTED] Providenza & Boekelheide, Inc. -- http://mail.python.org/mailman/listinfo/python-list
