[python-win32] Named parameters; Adding Excel sheet

Tim Golden mail at timgolden.me.uk
Wed Aug 10 15:05:00 CEST 2011


On 10/08/2011 13:46, David Robinow wrote:
>> <code>
>> from win32com.client import Dispatch
>>
>> app = Dispatch ("Excel.Application")
>> app.Visible = 1 # Watch what's going on
>> wb = app.Workbooks.Add ()
>> # [Sheet1], [Sheet2], [Sheet3]
>> wb.Sheets.Add (After=wb.Sheets (3))
>> # [Sheet1], [Sheet2], [Sheet3], [Sheet4]
>>
>> </code>
>>
>> Do you see the same? And is that what you expected?
>   I see [Sheet4], [Sheet1], [Sheet2], [Sheet3]
>
> Python2.7.2,  Excel 2007

Interesting. I'm running Excel 2003; might make a difference.
Hold on... Nope; my colleague's 2007 install does the same
as mine. Another theory; could it be (oddly) to do with
static vs dynamic dispatch...

Aha! And it is. If I force the use of dynamic dispatch, one
of the several differences is that the new sheet appears
first as you described. Frankly, I'm not even going to try
to determine why that is. My advice is that you change your
dispatch line to:

app = win32com.client.gencache.EnsureDispatch ("Excel.Application")

and go from there. I suspect it will work.

TJG



More information about the python-win32 mailing list