none
referencia objeto excel RRS feed

  • Pregunta

  • buenas

    tengo una aplicación visual net que utiliza excel para volcado de datos

    he agregado Imports Microsoft.Office.Interop.Excel

    en todos los puesto el excel es la version 2007 y me funciona bien pero hay uno que no me va, me da el error siguiente


    Aran

    • Cambiado Enrique M. Montejo domingo, 17 de septiembre de 2017 5:04 Programación con Microsoft Excel.
    miércoles, 13 de septiembre de 2017 6:54

Todas las respuestas

  • Hola aticnet

    Asegúrate que en donde ejecutes la aplicación cuente con el excel que estás queriendo manejar, ya sea en una de sus diferentes versiones, puesto que es dicha instalación que registra la .dll

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    miércoles, 13 de septiembre de 2017 7:55
  • Gracias

    la aplicacion esta en un server y ahi no tengo problema

    pero la ejecuto desde distintos puestos con la version office 2007, es solo en uno de ellos donde me da este error

    tengo que buscar la libreria en el puesto que no funciona? y que hago con ella?


    Aran

    miércoles, 13 de septiembre de 2017 9:39
  • Hola:

     Lamentablemente no proporcionas todo el mensaje que te arroja la aplicación, posiblemente en algún punto te de información mas útil.

     Este tipo de situaciones es lo que ocurre cuando trabajas con los objetos COM de Office, por una u otra razón suelen dar problemas y el mas común es por la versión del Excel instalado en los equipos clientes.

     Si te es factible, puedes experimentar con esta Liberia y OpenXml:

    Trabajar con archivos Excel desde WindowsForms (SpreadSheetLight) 

     El único problema que le he encontrado es el performance en la lectura cuando el archivo Excel supera los 10 mil registros, pero siempre existen formas para evitar este pequeño detalle.


    Saludos desde Monterrey, Nuevo León, México!!!

    miércoles, 13 de septiembre de 2017 15:52
  • muchas gracias

    lo veo muy complicado

    no hay forma de hacerlo con el interop de excel?

    alguna manera de poder registrar bien la libreria?


    Aran

    lunes, 18 de septiembre de 2017 12:15
  • Pueden ser varias cosas, como indican los colaboradores, y efectivamente valdría tener todo el texto del error para poder analizarlo, como sujerencia verifica en esa PC si su CultureInfo se encuentra igual a las demás, por que de no ser así podría crearte problemas al generar excel en cuanto a los puntos y comas si es el caso te recomiendo colocar a todas las PC en una unica cultura para el desarrollo o sea antes de comenzar a cargar las celdas del excel colocas

    Dim Cultura As Systen.Globalization.CultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture; Cultura = new System.Globalization.CultureInfo("en-US");

    sPor otro lado esta las diferentes versiones de Office, claro puedes generar para cada caso una conexión dierente segun su versión en el siguiente link hay descripciones de como haer

    https://support.microsoft.com/es-es/help/316934/how-to-use-ado-net-to-retrieve-and-modify-records-in-an-excel-workbook

    en este otro distintas conexiones string para excel

    https://www.connectionstrings.com/excel-2007/

    Espero te sirva saludos

    lunes, 18 de septiembre de 2017 23:39
  • el error completo es:

    Consulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración
    Just-In-Time (JIT) en lugar de a este cuadro de diálogo.

    ************** Texto de la excepción **************
    System.Runtime.InteropServices.COMException (0x80010105): El servidor lanzó una excepción. (Excepción de HRESULT: 0x80010105 (RPC_E_SERVERFAULT))
       en Microsoft.Office.Interop.Excel.Workbooks.Add(Object Template)
       en ProduccionAsmek.frmListadoNpiezas.InventarioGeneral()
       en ProduccionAsmek.frmListadoNpiezas.btnAceptar_Click(Object sender, EventArgs e)
       en System.Windows.Forms.Control.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnClick(EventArgs e)
       en System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       en System.Windows.Forms.Control.WndProc(Message& m)
       en System.Windows.Forms.ButtonBase.WndProc(Message& m)
       en System.Windows.Forms.Button.WndProc(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Ensamblados cargados **************
    mscorlib
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.8762 (QFE.050727-8700)
        Código base: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    ProduccionAsmek
        Versión del ensamblado: 1.0.0.0
        Versión Win32: 1.0.0.0
        Código base: file:///Z:/ProduccionAsmek.exe
    ----------------------------------------
    Microsoft.VisualBasic
        Versión del ensamblado: 8.0.0.0
        Versión Win32: 8.0.50727.5483 (Win7SP1GDR.050727-5400)
        Código base: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
    ----------------------------------------
    System
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.8770 (QFE.050727-8700)
        Código base: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Windows.Forms
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.5491 (Win7SP1GDR.050727-5400)
        Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System.Drawing
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.5495 (Win7SP1GDR.050727-5400)
        Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System.Runtime.Remoting
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.8771 (QFE.050727-8700)
        Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
    ----------------------------------------
    System.Data
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.8762 (QFE.050727-8700)
        Código base: file:///C:/Windows/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
    ----------------------------------------
    System.Xml
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.5494 (Win7SP1GDR.050727-5400)
        Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    System.Configuration
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.5483 (Win7SP1GDR.050727-5400)
        Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    mscorlib.resources
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.8762 (QFE.050727-8700)
        Código base: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    System.Transactions
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.5483 (Win7SP1GDR.050727-5400)
        Código base: file:///C:/Windows/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll
    ----------------------------------------
    System.EnterpriseServices
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.5483 (Win7SP1GDR.050727-5400)
        Código base: file:///C:/Windows/assembly/GAC_32/System.EnterpriseServices/2.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll
    ----------------------------------------
    Microsoft.Office.Interop.Excel
        Versión del ensamblado: 12.0.0.0
        Versión Win32: 12.0.4518.1014
        Código base: file:///C:/Windows/assembly/GAC/Microsoft.Office.Interop.Excel/12.0.0.0__71e9bce111e9429c/Microsoft.Office.Interop.Excel.dll
    ----------------------------------------
    System.Windows.Forms.resources
        Versión del ensamblado: 2.0.0.0
        Versión Win32: 2.0.50727.5420 (Win7SP1.050727-5400)
        Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_es_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------

    ************** Depuración JIT **************
    Para habilitar la depuración Just In Time (JIT), el archivo de configuración de esta
    aplicación o equipo (machine.config) debe tener el
    valor jitDebugging establecido en la sección system.windows.forms.
    La aplicación también se debe compilar con la depuración
    habilitada

    Por ejemplo:

    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>

    Cuando esté habilitada la depuración JIT, cualquier excepción no controlada
    se enviará al depurador JIT registrado en el equipo
    en lugar de controlarlo mediante el cuadro de diálogo.


    Aran

    martes, 19 de septiembre de 2017 6:42
  • Hola:

    muchas gracias

    lo veo muy complicado

    no hay forma de hacerlo con el interop de excel?

     No es nada complicado, el tema es que tendrías que cambiar tu forma de trabajar, creo que ahí es donde se pierde la factibilidad. Si te es posible hacer una prueba de concepto hazla para que veas que es muchísimo mas fácil y no tendrás problemas con las versiones del Excel (siempre y cuando sean versión superiores a la 2003) y tampoco tendrás dependencia de la instalación del Excel en ningún equipo. Ojo, no trato de venderte nada, solo comento las ventajas que yo he experimentado.


    Saludos desde Monterrey, Nuevo León, México!!!

    martes, 19 de septiembre de 2017 15:38