Usuario
referencia objeto excel

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.
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.
-
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
-
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!!!
-
-
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
-
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
-
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!!!