Pregunta Error de clase no registrada al crear el libro de Excel en C #


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 puede 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

http://social.msdn.microsoft.com/Forums/vstudio/en-US/d3f92da7-96d3-404b-89d0-d236800ceae5/vs-2012-rc-and-visual-studio-tools-for-office?forum= vsto

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 el tipo Office 2013   bibliotecas, y que ahora hay versiones duplicadas registradas. tengo   ese mensaje de error específico ('incapaz de emitir   _Application '....' TYPE_E_LIBNOTREGISTERED ') después de una desinstalación complicada, y luego reinstalar una versión anterior de Office. Lo solucioné por   siguiendo el consejo de otro hilo del foro aquí que estoy tristemente   incapaz de encontrar ... básicamente busqué en el registro para el CLSID en   el mensaje de error, entonces, {00020970-0000-0000-C000-000000000046}. Sus   la 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. entonces yo   buscó en el registro, comenzando de nuevo, para eso   segundo CLSID, que me condujo a la biblioteca de tipos de interoperabilidad relevante. Eso   tenía dos entradas ... 8.3 y 8.4, el número mayor correspondía al   versión posterior de Office ... que borré ... e inmediatamente pude   para ejecutar mi programa


32
2017-12-05 10:29


origen


Respuestas:


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 su los nodos secundarios estaban vacíos!  Lo borré 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í:

Error al acceder a los componentes COM


28
2018-05-28 15:49



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.


6
2017-10-13 19:35



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.


6
2018-04-28 04:40



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: Debajo Ordenador \ HKEY_CLASSES_ROOT \ TypeLib {00020813-0000-0000-C000-000000000046} Tuve la subclave 1.9. Esto a su vez tiene la subclave 0(o deberia). 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.


2
2018-01-31 14:37



El hack de registro descrito anteriormente me solucionó el mismo problema. La única diferencia fue que tuve un 1.9 y una entrada de 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 STACKOVERFLOW.COM porque este lugar ROCKS !!!!!!


1
2017-07-27 15:20



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


0
2018-05-05 14:49