c# - org - mapwindows 5
Error de clase no registrada al crear el libro de Excel en C# (6)
Cuando intento acceder a una hoja de cálculo de Excel con el siguiente código, aparece un error de "Biblioteca no registrada" al definir el objeto de libro wrkbuk usando C # de Visual Studio 2012 con Office 2007 (ver 12) instalado
Microsoft.Office.Interop.Excel.Application excapp = new Microsoft.Office.Interop.Excel.Application();
string bookname = @"C:/Users/Public/Documents/RECRUITMENT & SELECTION/MOVEMENTS/MOVEMENTS/Miscellaneous Documents/VacanciesREAL.xls";
Workbook wrkbuk = excapp.Workbooks.Open(bookname);
Worksheet wrksht = new Worksheet();
Los detalles del error son
System.InvalidCastException no fue manejado HResult = -2147467262 Mensaje = No se pudo convertir el objeto COM del tipo ''Microsoft.Office.Interop.Excel.ApplicationClass'' al tipo de interfaz ''Microsoft.Office.Interop.Excel._Application''. Esta operación falló porque la llamada QueryInterface en el componente COM para la interfaz con IID ''{000208D5-0000-0000-C000-000000000046}'' falló debido al siguiente error: Biblioteca no registrada. (Excepción de HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)). Fuente = mscorlib
Creé una referencia a Microsoft.Office.Interop.Excel.dll en el conjunto de interoperabilidad primaria de Office 14 que viene con VS 2012 y también para la versión de Office 12 del dll y ninguno soluciona el problema. Intenté registrar los dlls con regasm, pero tampoco ayuda.
Puedo crear la hoja de trabajo wrksht en la siguiente línea OK con los archivos DLL Office 14 y Office 12, por lo que el problema parece afectar únicamente la definición del libro de trabajo.
17 de diciembre de 2013
Intenté volver a instalar Office 2007 en vano pero encontré esta solución, que funcionó. Fue en
El problema es el código de varias versiones de Office: tuve el código de Office 14, posiblemente proveniente de la instalación de VS 2012
Sospecho que VS 2012 RC ha instalado las bibliotecas de tipo Office 2013 y que ahora hay versiones duplicadas registradas. Recibí ese mensaje de error específico (''no se puede enviar _Application'' .... ''TYPE_E_LIBNOTREGISTERED'') después de una desinstalación complicada, y luego volví a instalar una versión anterior de Office. Lo resolví siguiendo el consejo de otro hilo del foro que lamentablemente no pude encontrar ... básicamente busqué en el registro el CLSID en el mensaje de error, entonces, {00020970-0000-0000-C000-000000000046}. Su clave de registro contenía dos claves, una de las cuales se llamaba ''TypeLib'', que a su vez contenía otro CLSID para la biblioteca de tipos. Luego busqué en el registro, comenzando desde el principio otra vez, para ese segundo CLSID, que me condujo a la biblioteca de tipos de interoperabilidad relevante. Tenía dos entradas ... 8.3 y 8.4, el número más grande correspondía a la versión posterior de Office ... que borré ... e inmediatamente pude ejecutar mi programa.
Algo que no se ha mencionado aquí pero que puede ser útil es que las subclaves de 1.XX pueden causar problemas también. Por ejemplo: en Computer / HKEY_CLASSES_ROOT / TypeLib {00020813-0000-0000-C000-000000000046} Tenía la subclave 1.9 . Esto a su vez tiene la subclave 0 (o debería). Ahora debajo de esto, había dos subclaves: Win32 y Win64 . Como resultado, Visual Studio no pudo resolver la ubicación de Microsoft.Office.Interop.Excel.dll: estaba leyendo dos subllaves donde solo podía leer una. Eliminar la subclave Win32 solucionó mi problema por completo. Tenga en cuenta que esto se hizo después de una reinstalación completa de VS 2017 y Office 365 Pro Plus. Espero que esto ayude a alguien.
Confirmaré la respuesta de @stuzor en dos máquinas que he encontrado.
Fondo:
Windows7 64 bit
Office 2010 (32bit)
Lync 2013
HKEY_CLASSES_ROOT / TypeLib /, buscó "Office.Interop.Excel". Encontré la carpeta "1.8" apenas existente. Tras la eliminación, la función en una aplicación antigua de VB.net comenzó a funcionar inmediatamente.
El hack de registro descrito anteriormente me solucionó el mismo problema. La única diferencia fue que tuve una entrada de 1.9 y 1.7. Eliminé la clave 1.9 y se solucionó mi problema.
Otra información:
Sistema operativo: Windows 10
Visual Studio Professional 2015
Aplicación de formulario de Windows C #
Esto estaba en mi computadora portátil de trabajo. Tenemos Office 2010 instalado en cada estación de trabajo.
Algunas otras cosas que probé que NO FUNCIONARON fueron las siguientes:
Reparación de MS Office
Reinstalar MS OFFICE
Descargando Microsoft Office 2010: Asambleas primarias de interoperabilidad de Microsoft.
También tuve varias versiones de Microsoft.Office.Interop.Excel.dll en mi computadora portátil. Eliminar versiones anteriores no solucionó el problema.
Me alegro de haber ido a .COM porque este lugar ROCKS !!!!!!
Tenía exactamente el mismo problema. Así es como lo arreglé:
Vaya a HKEY_CLASSES_ROOT / TypeLib / y busque "Office.Interop.Excel".
¡Encontré HKEY_CLASSES_ROOT / TypeLib / (guid) / 1.8 pero sus nodos secundarios estaban vacíos! Lo eliminé porque Office 15 no estaba instalado en esa máquina, y listo - funcionó.
O nuestro instalador de proyectos VSTO, o nuestro propio instalador personalizado debe haber colocado la carpeta 1.8 allí.
Encontré la solución aquí:
Tenía exactamente el mismo problema. Si ha instalado una nueva versión de Office y por alguna razón tiene que instalar la versión anterior sin quitar la nueva (en mi caso solo necesito instalar el Editor de fotos de Office XP) y esto causó el problema.
Después de pasar 3 horas arriba y abajo, la mejor manera es reparar la nueva versión de Office y todo volvió a la normalidad como debería ser.
Espero que esta información ayude siempre que tengas el mismo escenario o similar.
Tuvimos el mismo problema.
Nuestra configuración es así:
Office 2010: Word y Excel, pero Office 2013: Outlook
Ejecutamos el programa de instalación para Office 2010 y elegimos la opción de reparación. Después de eso, todas las claves incorrectas en el registro para Word y Excel fueron eliminadas y el problema fue resuelto.