2009-05-13 24 views

risposta

6
Public Shared Function GetExcelVersion() As Integer 
    Dim excel As Object = Nothing 
    Dim ver As Integer = 0 
    Dim build As Integer 
    Try 
     excel = CreateObject("Excel.Application") 
     ver = excel.Version 
     build = excel.Build 
    Catch ex As Exception 
     'Continue to finally sttmt 
    Finally 
     Try 
      Marshal.ReleaseComObject(excel) 
     Catch 
     End Try 
     GC.Collect() 
    End Try 
    Return ver 
End Function 

restituisce 0 se Excel non trovato.

+0

Che cosa succede se mi piacerebbe aprire certa versione excel dallo stesso codice? –

+0

Cosa intendi? – Shimmy

+0

La tua risposta mi ha dato le informazioni che volevo in modo +1. Tuttavia, devo sottolineare che excel.Version è una stringa; ad esempio "11.0" o "15.0". –

2

Sfortunatamente, questo approccio è l'unico approccio affidabile. Anche Microsoft suggests using a similar technique (questo è per il controllo manuale, ma il concetto è identico).

Se si desidera eseguire questa operazione nel codice gestito, suggerisco di eseguire il porting del codice dal collegamento e di creare una classe che sia facilmente estendibile quando vengono rilasciati nuovi service pack.

0

Anche se non robusto, questo approccio è l'unico modo che conosco.

Ricordare che non è necessario verificare una corrispondenza esatta. È possibile utilizzare i confronti sui singoli valori per verificare se la versione in uso è, ad esempio, SP1 o più recente. sai che è più recente, se il numero di versione è maggiore o uguale a "11.0.6355.0" (è necessario implementare il confronto)

Problemi correlati