Reputation: 8074
My VB.NET (3.5) application generates Excel reports.
Newer versions of Excel support the Office Open XML file format, while older versions don't.
I'd like my application to identify which version of Excel is installed on the local machine, and use a different method for generating the report (Newer versions: by generating an XML file. Older versions: by utilizing Excel Automation).
How can I identify the Excel version installed on the local machine?
Upvotes: 5
Views: 2208
Reputation: 27478
You could open an instance of Excel and check the version:
Dim appExcel As Object
appExcel = CreateObject("Excel.Application")
With appExcel
Debug.Print(Val(.application.version))
.quit()
appExcel = Nothing
End With
Upvotes: 5
Reputation: 31192
You can have a look at one of the following registry keys :
HKEY_USERS\.DEFAULT\Software\Microsoft\Office\11.0\Excel
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel
You should look for the existence of the key, with "Excel" in it, as you can have office 2003 installed, and visio 2007 aside, so both keys will exist, but only one will have an Excel subkey :
HKEY_CURRENT_USER\Software\Microsoft\Office\11.0
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0
Number / Version correspondance
Upvotes: 3