Create another Excel instance

David Rushby woodsplitter at rocketmail.com
Fri Jul 18 15:00:16 CEST 2003


yvan_charpentier at hotmail.com (yvan) wrote in message news:<9ee55987.0307111159.6978676e at posting.google.com>...

> Basically, my problem is that the object uses the same process 
> if an instance of Excel already exists.
> How can i create the new instance in a different process?

I just encountered the same problem.  How about this as a solution?
---------------------------------------------------------------
# For an explanation of makepy and gencache, see:
# http://www.oreilly.com/catalog/pythonwin32/chapter/ch12.html
# (Chapter 12 of _Python Programming on Win32_)
from win32com.client import gencache
gencache.EnsureModule('{00020813-0000-0000-C000-000000000046}', 0, 1, 2)
xlApplicationClass = gencache.GetClassForProgID('Excel.Application')

# Create a new instance of the Excel.Application class--don't reuse an
# existing instance.
xlApp = xlApplicationClass()

xlApp.Visible = False
xlApp.DisplayAlerts = False

try:
    wbk = xlApp.Workbooks.Add()
    sht = wbk.Sheets(1)

    sht.Cells(1,1).Value = 'blah'
    raise Exception('Deliberately raise an exc to test tidiness of cleanup.')
finally:
    try:
        wbk.Close()
        del wbk
    except:
        pass

    xlApp.Quit()
    del xlApp
---------------------------------------------------------------




More information about the Python-list mailing list