none
ERROR CUANDO EXPORTO EN DISTINTAS MAQUINAS RRS feed

  • 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)
    miércoles, 17 de junio de 2009 11:06

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
    miércoles, 17 de junio de 2009 12:49
  • 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ércoles, 17 de junio de 2009 13:14
  • 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" ?


    miércoles, 17 de junio de 2009 13:30
  • 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

    viernes, 14 de agosto de 2009 7:30
  • 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.

    lunes, 8 de febrero de 2016 16:13