Following is a snippet of code that I have been using to figure out if
an addin in installed.
xlApp = win32com.client.dynamic.Dispatch('Excel.Application')
xlApp.DisplayAlerts = 0
xlApp.Interactive = 1
if xlApp.Application.Addins.Count <= 0:
print "Terminating: No add_ins are available"
xlApp.quit
return 0
# Addin name should be Analysis ToolPak or Analys32
lnAddins=0
for ia in range(1, xlApp.Application.Addins.Count):
## print xlApp.Application.Addins(ia).Title
## print
str(string.lower(xlApp.Application.Addins(ia).Title)), "xx"
## print
string.find(str(string.lower(xlApp.Application.Addins(ia).Title)),
"analysis toolpak")
if
string.find(str(string.lower(xlApp.Application.Addins(ia).Title)),
"analysis toolpak") >= 0 or
string.find(string.lower(xlApp.Application.Addins(ia).Title),
"analys32") >= 0:
lnAddins=ia
print lnAddins
if lnAddins==0:
print "Terminating. Analysis ToolPak or Analy32 addins are
not availabe"
xlApp.quit
return
xlApp.Application.Addins(lnAddins).Installed = 0
xlApp.Application.Addins(lnAddins).Installed = 1
Hussain
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Tim Roberts
Sent: Wednesday, April 25, 2007 12:02 PM
To: Python-Win32 List
Subject: Re: [python-win32] excel xla runautomacros
mjohnson wrote:
> I am having a problem with an excel add-in which is installed via
> xlApp.Workbooks.Open("C:/Program
> Files/Program/XLOF32.xla").RunAutoMacros(1)
>
> I can then add the add-in and install it via
> xlApp.AddIns.Add ("C:/Program Files/Program/XLOF32.xla",True)
> xlApp.AddIns.Item(Index='Excel Functions').Installed=True
>
> My problem is that the macro may have already been run, which
> generates a dialog warning that it is already open.
>
> The question, is there a way of detecting whether the add-in is
> already open?
Well, xlApp.AddIns is a collection. You should be able to query the
collection item by item and check to see whether the add-in is present.
I'm leaving the code as "an exercise for the reader", but something like
this should be possible:
for addin in range( xlApp.AddIns.Count ):
if xlApp.AddIns.item(addin).Filename???
I don't know exactly which property you'd need to query.
--
Tim Roberts, [EMAIL PROTECTED]
Providenza & Boekelheide, Inc.
_______________________________________________
Python-win32 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-win32
Disclaimer
This e-mail and any attachments is confidential and intended solely for the use
of the individual(s) to whom it is addressed. Any views or opinions presented
are solely those of the author and do not necessarily represent those of
Waterstone Capital Management, L.P and affiliates. If you are not the intended
recipient, be advised that you have received this e-mail in error and that any
use, dissemination, printing, forwarding or copying of this email is strictly
prohibited. Please contact the sender if you have received this e-mail in
error. You should also be aware that e-mails are susceptible to interference
and you should not assume that the contents of this e-mail originated from the
sender above or that they have been accurately reproduced in their original
form. Waterstone Capital Management, L.P. and affiliates accepts no
responsibility for information, or errors or omissions in this e-mail or use or
misuse thereof. If in doubt, please verify the authenticity with the!
sender.
_______________________________________________
Python-win32 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-win32