¿Qué referencia necesito para usar Microsoft.Office.Interop.Excel en .NET?

102

Estoy interesado en usar C # para manipular / automatizar archivos de Excel.

Después de navegar por la web, encontré VSTO, pero parece que no puede usar eso en Visual Studio Express Edition, así que no puedo usarlo.

Hace solo unos minutos, noté una pregunta en este sitio que usaba este espacio de nombres en su código:

Microsoft.Office.Interop.Excel

Entonces, me pregunto si todo lo que necesito usar es agregar la referencia necesaria y, de ser así, ¿qué referencia agregar?

ACTUALIZAR

Instalé "Ensamblados de interoperabilidad primarios" como sugirió la respuesta aceptada, pero por alguna razón todavía faltan en el cuadro de diálogo Agregar referencia en ".NET", pero están presentes en GAC.

Así que acabo de agregar la referencia usando "Examinar" y la Microsoft.Office.Interop.Excel.dllubiqué en la carpeta GAC.

Pero al buscar preguntas similares en este sitio con respecto a agregar referencias del GAC, parece que esto no es recomendable.

user850010
fuente

Respuestas:

102

Actualización (gracias user2347528)

Estos ensamblados están disponibles como paquetes NuGet, que es mucho más fácil que mi respuesta original.

Puede instalar haciendo clic derecho en Referencias en su proyecto y seleccionando Administrar paquetes NuGet ... y buscando uno de los paquetes que se enumeran a continuación, o instale usando la Consola del Administrador de paquetes:

PM> Install-Package Microsoft.Office.Interop.Excel

Están disponibles como "ensamblados de interoperabilidad primarios", que se pueden instalar con Office o descargar e instalar por separado. Cómo: instalar ensamblados de interoperabilidad primarios de Office .

Una vez instalados, puede hacer referencia a ellos en su proyecto en el cuadro de diálogo Agregar referencia, en .NET. Si no ve esos ensamblados Microsoft.Office.Interop en la lista, significa que aún no se han instalado. Instálelos desde su configuración, o descárguelos e instálelos por separado (vea mi enlace arriba para las descargas).

moribvndvs
fuente
Encontré un montón de componentes en la pestaña "Com" llamada Microsoft Office ... ¿Son esos?
user850010
1
Estos son servicios COM para los que Visual Studio puede generar ensamblados de interoperabilidad .NET. No se recomienda que los use; debe utilizar los ensamblados de PIA publicados por Microsoft. Deberían aparecer en la pestaña .NET en el cuadro de diálogo Agregar referencias. Si no los ve, debe instalar el PIA desde su configuración de Office o descargarlos por separado como lo vinculé en mi respuesta.
moribvndvs
2
@HackedByChinese No veo ninguna pestaña .NET en el cuadro de diálogo Agregar referencias
1
En Visual Studio 2013, encontré estas referencias en Ensamblados-> Extensiones en el menú de la izquierda de la ventana Agregar referencias.
Benjamin Ray
1
Estoy tratando de instalar un programa C # que usa Microsoft.Office.Interop.Excel.dll en un servidor de Windows 2012. El programa funciona bien en mi PC con Windows 7, pero incluso después de instalar los PIA en el servidor, sigo recibiendo un mensaje de error sobre la falta de componentes de System.Runtime.Interop.COM. El programa se rompe cuando intento crear una instancia del objeto Excel.Application (). ¿Hay algo más que me esté perdiendo?
Melanie
50

Solo tuve este problema y acepté la respuesta no me ayudó, pero lo resolví con:

Add reference > Browse > C: > Windows > assembly > GAC > Microsoft.Office.Interop.Excel > 12.0.0.0_etc > Microsoft.Office.Interop.Excel.dll

Robert
fuente
2
Buscaba esta solución en todas partes.
Karim O.4 de
3
Gracias por el consejo. Es deliciosamente irónico que Microsoft no pueda hacer que esto funcione de manera confiable - 2014 y todavía nos referimos directamente a .dlls ...
Mike Honey
12
Add Reference-> COM-> Microsoft Excel 12.0 Object Libraryhace lo mismo.
primo
¿Funciona en el servidor? sin instalar Office en el servidor?
Naveen Katakam
OK gracias. ¿Tiene usted alguna idea? ¿Puedo usarlo sin instalar Office? Estoy usando azure.
Naveen Katakam
24

Las respuestas no me ayudaron a resolver mi problema, no pude encontrar (y navegar) los ensamblajes aunque los instalé usando el instalador msi de Microsoft. Para mí, el ensamblaje de Excel se encuentra debajoC:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll

0x8BADF00D
fuente
Después de probar la carpeta GAC, GAC_32 y GAC_64, pensé que nunca estaría en la última carpeta GAC_MSIL. Pero fue. Gracias por tu comentario. ¡Funcionó muy bien para mí!
Marty_in_a_Box
La mejor y más sencilla respuesta. Gracias amigo.
Wessam El Mahdy
8

Solo agregue la referencia de Microsoft.Office.Interop.Excel.

Incluye clases relacionadas con MicroSoft Excel, no es necesario agregar más referencias.

RAKESH HOLKAR
fuente
1
Eso es lo primero que probé. Pero no se encuentra la parte "Office".
user850010
En realidad, tuve el mismo problema que @ user850010, pero finalmente me di cuenta de que estaba haciendo clic derecho y agregando la carpeta de referencias del proyecto incorrecto en mi solución.
Usuario
4

Supongo que lo que está tratando de hacer es agregar Microsoft.Office.Interop.Exceluna usingdeclaración sin agregar su referencia en su aplicación, en ese caso no se encontrará. Antes de llamarlo con una usingdeclaración, debe agregar una referencia a su aplicación. Haga clic derecho Referencesy agregue la Excel Interopreferencia.

Misam
fuente
4

Agregar referencia> Examinar> C:> Windows> ensamblado> GAC> Microsoft.Office.Interop.Excel> 12.0.0.0_wasd ..> Microsoft.Office.Interop.Excel.dll

Turanian
fuente
4

Lo encontré ubicado en Ensamblados-> Extensiones en VS2013.

Añadir referencia

bluebunny72
fuente
3

Si tiene Microsoft Office instalado, debería poder agregar una referencia a Interop.Excel.

Por ejemplo, la PC en la que estoy escribiendo esto tiene MSVS 2010 C # Express y Office 2010. Puedo agregar una referencia a Microsoft.Office.Interop.Excel 11.0.0.0.

'Espero que ayude

paulsm4
fuente
3

está en el componente com, llamado: "Biblioteca de objetos de Microsoft Office 14"

James Tan
fuente
1
VS2010: Agregar una referencia COM a "Microsoft Office 14 Object Library" solo agrega una referencia a "Microsoft.Office.Core". Mejor: utilice la referencia COM "Biblioteca de objetos de Microsoft Excel 14.0". Apunta directamente al ejecutable de Excel instalado, pero aparecerá como una referencia a "Microsoft.Office.Core" y "Microsoft.Office.Interop.Excel". Debería ayudar si solo necesita ejecutar e implementar en máquinas que tienen Excel instalado.
JS
3

La mejor opción desde Office 2007 es utilizar Open XML SDK para ello. Usamos Word.Interop, pero a veces se detiene, y no se recomienda que Microsoft lo use como formato de documento del lado del servidor, por lo que Open XML SDK le permite crear documentos de Word en formatos DOCX y Open XML muy fácilmente. Le permite funcionar bien con escalabilidad, confianza (los archivos, si están dañados, se pueden reconstruir) y otras características muy finas.

JosefMadrid
fuente
2

Aquí hay una solución súper sólida, solo necesita tener excell.dll en su carpeta Debug / Release El mío es 77,824 bytes, lo descargué como un archivo, esto también explica por qué algunas personas han compilado Debug pero Release no o viceversa.

Trento

Mario Trento
fuente
2

Simplemente tuve el mismo problema, pero ninguna de estas respuestas me ayudó. Encontré el dll en mi PC en la ubicación que Mostey señaló: ( C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll), pero este no es el que se mencionó en el proyecto que estaba tratando de construir.

La referencia en nuestro proyecto en Visual Studio 2012 apuntaba C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\. Esta ubicación estaba vacía para mí, pero funcionó bien para todos los demás. Me tomó varios intentos, pero finalmente encontré un instalador que funcionaba. ¡Espero que esto evite a otros la misma molestia!

-> Instalador del paquete de herramientas de Office para VS2012 <-

Este se encuentra en la página de descarga y documentación de Office . Desplácese hacia abajo hasta Descargas de herramientas . Actualmente también hay uno para VS2013.

la hélice
fuente
1

1.Descargue e instale: Microsoft Office Developer Tools

2.Añadir referencias de:

C: \ Archivos de programa (x86) \ Microsoft Visual Studio 11.0 \ Visual Studio Tools para Office \ PIA \ Office15

Artur Tarnowski
fuente
1

Tuve el mismo problema y Microsoft.Office.Interop no aparecía en la opción "Agregar referencia" una vez que actualicé VS2012 a VS2015. Básicamente reparé la instalación ( Panel de control> Programas y características> VS 2012> Haga clic con el botón derecho en Cambiar> Reparar ) y agregué el componente de Microsoft Office. Después de eso, la misma solución comenzó a funcionar.

sk1900
fuente
0

Asegúrese de que su proyecto sea de 32 bits.

Tuve este problema, tan pronto como marqué "Preferir 32 bits y reconstruir" todos los ensamblajes de Office Interop donde estuvieran disponibles en Referencia-> Ensambles-> Buscar "Oficina".

spludlow
fuente