Usuario
ERROR CUANDO EXPORTO EN DISTINTAS MAQUINAS

Pregunta
-
Hola a todos, el problema que tengo es raro, ya busque por todos lados y no encuentro la solución, puesto que no se de donde viene el problema. Tengo hecha una aplicación en vb.net, la cual exporta datagrids a excel como informes. en ciertas maquinas con windows XP y office 2003, anda perfecto, otras con windows vista y 2007 tmb, pero me encontre con un problema en varias maquinas que tienen office 2003 y windows vista, la linea que tira el error es la siguiente:
Exc.Workbooks.OpenText(pFileName, , , , Excel.XlTextQualifier.xlTextQualifierNone, ,
True)
Error:
No se puede convertir el objeto COM del tipo 'Microsoft.Office.Interop.Excel.ApplicationClass' al tipo de interfaz 'Microsoft.Office.Interop.Excel._Application'. Ocurrió un error de operación debido a que la llamada QueryInterface en el componente COM para la interfaz con IID '{000208D5-0000-0000-C000-000000000046}' generó el siguiente error: No se puede encontrar . (Excepción de HRESULT: 0x800300
Ya he probado instalar varias cosas, agregar dlls pero sigue el error, nose que puede ser, si alguien tiene aglun dato, me vendria muy bien. Desde ya muchas gracias a todos- Cambiado Enrique M. Montejo miércoles, 1 de junio de 2011 21:55 interoperabilidad (De:Lenguaje VB.NET)
Todas las respuestas
-
hola,
prueba de agregar una linea como esta:
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
En al cultura pon el idioma con que se encuantra el Office en esa pc instalado
Ten en cuenta que el idioma del office instalado es importante.
O sea esta linea solo servira si el idioma del office en esa pc esta en ingles.
Nota: esta linea esta en c#, pero en vb.net deberia ser similar.
saludos
Leandro Tuttini
Work: Iceberg Solutions
Blog
Buenos Aires
Argentina -
Hola leandro, desde ya te agradezco mucho por intereesarte en Responder, esto nos resulta tan raro con mi compañero de trabajo, pk se empeña en no funcionar en windows vista. La funcionq ue tengo empieza asi :
value =
My.Application.Info.DirectoryPath
Dim vFormato As Excel.XlRangeAutoFormat
Dim vCultura As System.Globalization.CultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(
"en-US")
Dim Exc As Excel.Application = New Microsoft.Office.Interop.Excel.Application()
Exc.Workbooks.OpenText(pFileName, , , , Excel.XlTextQualifier.xlTextQualifierNone, , True) --> Esta tira el error
Asi que lo del lenguaje no creo que sea el problema, ya probamos mil cosas jejeje, pero esta bueno el desafio.. Seguiremos buscando, muchas gracias Leandro !!! -
Hola leandro, desde ya te agradezco mucho por intereesarte en Responder, esto nos resulta tan raro con mi compañero de trabajo, pk se empeña en no funcionar en windows vista. La funcionq ue tengo empieza asi :
value =
My.Application.Info.DirectoryPath
Dim vFormato As Excel.XlRangeAutoFormat
Dim vCultura As System.Globalization.CultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(
"en-US")
Dim Exc As Excel.Application = New Microsoft.Office.Interop.Excel.Application()
Exc.Workbooks.OpenText(pFileName, , , , Excel.XlTextQualifier.xlTextQualifierNone, , True) --> Esta tira el error
Asi que lo del lenguaje no creo que sea el problema, ya probamos mil cosas jejeje, pero esta bueno el desafio.. Seguiremos buscando, muchas gracias Leandro !!!
Mi OFFICE esta en Español, por ejemplo, seria "en-ES" ? -
Hola maximiliano,
has comprobado que todas las máquinas tengan instalados los ServicePack de Office? Y que las librerias de Interop (por cierto, comentarte que Microsoft no recomienda el uso de las librerias de interoperabilidad para generar documentos de Office. Para ello dispones de VSTO, que no requieren que Office esté instalado en la máquina cliente) estén en la GAC? Está claro que hay algo que falta en las máquinas en las que no funciona...
En caso de que la respuesta te sirva, porfavor, márcala como válida
Muchas gracias y suerte!
Javier Jiménez Roda
MCP (Microsoft Certified Professional)
MCTS (Microsoft Certified Technology Specialist)
MCPD (Microsoft Certified Professional Developer)
Blog: http://jimenezroda.wordpress.com -
A mí me funcionó buscando los archivos interop de las diferentes versiones de excel y agregándolos en el instalador de mi aplicación. No es fácil encontrarlos, tienes que instalar cada versión de office, y al agregar la referencia, busco la carpeta en donde marca que está cada versión de excel. De entrada yo tengo ya las versiones 14 y 15 (para office 2007 y 2010).
Sin embargo tengo un usuario que tiene office 2010 y él es mi única excepción, honestamente ignoro qué está pasando exactamente en la máquina de él, que no me funciona, pero en el resto no importa si tienen versiones diferentes, pues en la carpeta de instalación encuentra la versión de interop que necesita.