2009-05-13 7 views

Respuesta

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 

Devuelve 0 si no se encuentra excel.

+0

¿Qué pasa si me gustaría abrir cierta versión Excel desde el mismo código? –

+0

¿Qué quieres decir? – Shimmy

+0

Tu respuesta me dio la información que quería para +1. Sin embargo, debo señalar que Excel.Version es una cadena; por ejemplo "11.0" o "15.0". –

2

Desafortunadamente, ese enfoque es el único enfoque confiable. Incluso Microsoft suggests using a similar technique (esto es para verificar manualmente, pero el concepto es idéntico).

Si desea hacer esto en código administrado, le sugiero que solo transfiera el código de su enlace y cree una clase que sea fácilmente extensible cuando se publiquen nuevos paquetes de servicios.

0

Aunque no es robusto, ese enfoque es la única forma que conozco.

Tenga en cuenta que no tiene que comprobar si hay una coincidencia exacta. Puede usar comparaciones en los valores individuales para ver si la versión que tiene es, por ejemplo, SP1 o más reciente. sabes que es más reciente si el número de versión es mayor o igual a "11.0.6355.0" (que necesita para poner en práctica la comparación)

Cuestiones relacionadas