Di quale riferimento ho bisogno per utilizzare Microsoft.Office.Interop.Excel in .NET?


102

Sono interessato a utilizzare C # per manipolare / automatizzare i file Excel.

Dopo aver navigato sul Web ho trovato VSTO ma sembra che non sia possibile utilizzarlo in Visual Studio Express Edition, quindi non posso utilizzarlo.

Solo pochi minuti fa ho notato una domanda in questo sito che utilizzava questo spazio dei nomi nel suo codice:

Microsoft.Office.Interop.Excel

Quindi mi chiedo se tutto ciò di cui ho bisogno per usare è aggiungere il riferimento necessario e, in caso affermativo, quale riferimento aggiungere?

AGGIORNARE

Ho installato "Primary Interop Assemblies" come suggerito dalla risposta accettata, ma per qualche motivo mancano ancora nella finestra di dialogo Aggiungi riferimento in ".NET" ma sono presenti in GAC.

Quindi ho appena aggiunto il riferimento utilizzando "Browse" e posizionato Microsoft.Office.Interop.Excel.dllnella cartella GAC.

Ma cercando domande simili su questo sito riguardo l'aggiunta di riferimenti da GAC, sembra che questo non sia raccomandato.

Risposte:


102

Aggiorna (grazie utente2347528)

Questi assembly sono disponibili come pacchetti NuGet, il che è molto più semplice della mia risposta originale.

È possibile eseguire l'installazione facendo clic con il pulsante destro del mouse su Riferimenti nel progetto e selezionando Gestisci pacchetti NuGet ... e cercando uno dei pacchetti elencati di seguito oppure eseguire l' installazione utilizzando la console di Gestione pacchetti:

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

Questi sono disponibili come "assembly di interoperabilità primari", che possono essere installati con Office o scaricati e installati separatamente. Procedura: installare assembly di interoperabilità primari di Office .

Una volta installati, puoi fare riferimento a essi nel tuo progetto nella finestra di dialogo Aggiungi riferimento, in .NET. Se non vedi gli assembly Microsoft.Office.Interop elencati, significa che non sono stati ancora installati. Installali dal tuo setup o scaricali e installali separatamente (vedi il mio link sopra per i download).


Ho trovato un mucchio di componenti nella scheda "Com" denominata Microsoft Office .... Sono quelli?
user850010

1
Questi sono servizi COM per i quali Visual Studio può generare assembly di interoperabilità .NET. Non è consigliabile utilizzarli; è necessario utilizzare gli assembly PIA rilasciati da Microsoft. Dovrebbero essere visualizzati nella scheda .NET nella finestra di dialogo Aggiungi riferimenti. Se non li vedi, devi installare il PIA dalla configurazione di Office o scaricarli separatamente come ho collegato nella mia risposta.
moribvndvs

2
@HackedByChinese Non vedo alcuna scheda .NET nella finestra di dialogo Aggiungi riferimenti

1
In Visual Studio 2013, ho trovato questi riferimenti in Assembly-> Estensioni nel menu a sinistra della finestra Aggiungi riferimenti.
Benjamin Ray

1
Sto cercando di installare un programma C # che utilizza Microsoft.Office.Interop.Excel.dll su un server Windows 2012. Il programma funziona bene sul mio PC Windows 7, ma anche dopo aver installato i PIA sul server, ricevo ancora un messaggio di errore sui componenti System.Runtime.Interop.COM mancanti. Il programma si interrompe quando provo a creare un'istanza dell'oggetto Excel.Application (). C'è qualcos'altro che mi manca?
Melanie

50

Ho avuto questo problema da solo e la risposta accettata non mi ha aiutato, ma l'ho risolto con:

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


2
Stavo cercando questa soluzione ovunque.
Karim O.

3
Grazie per il consiglio. È deliziosamente ironico che Microsoft stessa non sia in grado di farlo funzionare in modo affidabile - 2014 e ci riferiamo ancora direttamente a .dlls ...
Mike Honey

12
Add Reference-> COM-> Microsoft Excel 12.0 Object Libraryfa lo stesso.
primo

Funziona sul server? senza installare Office sul server?
Naveen Katakam

ok grazie. hai qualche idea? posso usarlo senza installare Office .. Sto usando azzurro.
Naveen Katakam

24

Le risposte non mi hanno aiutato a risolvere il mio problema, non sono riuscito a trovare (e sfogliare) gli assembly anche se li ho installati utilizzando il programma di installazione msi di Microsoft. Per me, l'assemblaggio di Excel si trova sottoC:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll


Dopo aver provato la cartella GAC, GAC_32 e GAC_64 ho pensato che non sarebbe mai stata nell'ultima cartella GAC_MSIL. Ma era. Grazie per il tuo commento. Ha funzionato alla grande per me!
Marty_in_a_Box

Risposta più semplice e migliore. Grazie amico.
Wessam El Mahdy

8

Basta aggiungere il riferimento di Microsoft.Office.Interop.Excel.

Include classi relative a MicroSoft Excel, non è necessario aggiungere altri riferimenti.


1
Questa è la prima cosa che ho provato. Ma la parte "Office" non è stata trovata.
user850010

In realtà ho avuto lo stesso problema di @ user850010 ma alla fine ho capito che stavo facendo clic con il pulsante destro del mouse e aggiungendo nella cartella dei riferimenti del progetto sbagliato nella mia soluzione.
Utente

4

Immagino che quello che stai cercando di fare sia aggiungere Microsoft.Office.Interop.Excelcon l' usingistruzione senza aggiungere il suo riferimento nella tua applicazione, in tal caso non verrà trovato. Prima di chiamarlo con usingistruzione è necessario aggiungere un riferimento alla propria applicazione. Fare clic con il tasto destro Referencese aggiungere il Excel Interopriferimento.


4

Aggiungi riferimento> Sfoglia> C:> Windows> assembly> GAC> Microsoft.Office.Interop.Excel> 12.0.0.0_wasd ..> Microsoft.Office.Interop.Excel.dll



3

Se hai installato Microsoft Office, dovresti essere in grado di aggiungere un riferimento a Interop.Excel.

Ad esempio, il PC su cui sto digitando ha MSVS 2010 C # Express e Office 2010. Posso aggiungere un riferimento a Microsoft.Office.Interop.Excel 11.0.0.0.

'Spero che aiuti


3

è nel componente com, denominato: "Microsoft Office 14 Object Library"


1
VS2010: l'aggiunta di un riferimento COM alla "Libreria oggetti di Microsoft Office 14" aggiunge solo un riferimento a "Microsoft.Office.Core". Migliore: utilizzare il riferimento COM "Microsoft Excel 14.0 Object Library". Punta direttamente all'eseguibile Excel installato, ma verrà visualizzato come riferimento sia a "Microsoft.Office.Core" che a "Microsoft.Office.Interop.Excel". Dovrebbe aiutare se è necessario eseguire e distribuire solo su macchine su cui è installato Excel.
JS

3

L'opzione migliore da Office 2007 utilizza Open XML SDK per questo. Abbiamo utilizzato Word.Interop ma a volte si interrompe, e non è consigliabile che Microsoft lo utilizzi come formattazione di documenti lato server, quindi Open XML SDK ti consente di creare documenti Word su formati DOCX e Open XML molto facilmente. Ti permette di andare bene con scability, sicurezza (i file, se sono danneggiati, possono essere ricostruiti) e altre caratteristiche molto fini.


2

Ecco una soluzione super solida, devi solo avere excell.dll nella tua cartella Debug / Release Il mio è 77.824 byte, l'ho scaricato come file, questo spiega anche perché alcune persone hanno compilato Debug ma Release no o viceversa.

Trento


2

Ho appena avuto lo stesso problema, ma nessuna di queste risposte mi ha aiutato. Ho trovato la dll sul mio PC nella posizione che Mostey ha annotato: ( C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll), ma questo non è quello a cui si fa riferimento nel progetto che stavo cercando di ottenere.

Il riferimento nel nostro progetto in Visual Studio 2012 puntava a C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\. Questa posizione era vuota per me, ma funzionava bene per tutti gli altri. Ci sono voluti diversi tentativi, ma alla fine ho rintracciato un programma di installazione funzionante. Spero che questo eviti ad altri la stessa seccatura!

-> Programma di installazione del pacchetto di strumenti di Office per VS2012 <-

Si trovava nella pagina di documentazione e download di Office . Scorri verso il basso fino a Strumenti Download . Attualmente ce n'è uno anche per VS2013.


1

1.Scarica e installa: Strumenti per sviluppatori di Microsoft Office

2.Aggiungi riferimenti da:

C: \ Programmi (x86) \ Microsoft Visual Studio 11.0 \ Visual Studio Tools per Office \ PIA \ Office15


1

Ho avuto lo stesso problema e Microsoft.Office.Interop non veniva visualizzato nell'opzione "Aggiungi riferimento" una volta aggiornato VS2012 a VS2015. Ho praticamente riparato l'installazione ( Pannello di controllo> Programmi e funzionalità> VS 2012> Fare clic con il pulsante destro del mouse su Modifica> Ripara ) e ho aggiunto il componente Microsoft Office. Successivamente la stessa soluzione ha iniziato a funzionare.


0

Assicurati che il tuo progetto sia a 32 bit.

Ho avuto questo problema, non appena ho spuntato "Preferisci 32 bit e ricostruito" tutti gli assembly di Office Interop dove disponibili in Riferimento-> Assiemi-> Cerca "Office".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.