Jakich informacji potrzebuję do korzystania z Microsoft.Office.Interop.Excel w .NET?


102

Jestem zainteresowany wykorzystaniem C # do manipulowania / automatyzacji plików Excela.

Po przejrzeniu sieci znalazłem VSTO, ale wygląda na to, że nie możesz tego użyć w Visual Studio Express Edition, więc nie mogę tego użyć.

Zaledwie kilka minut temu zauważyłem w tej witrynie pytanie, które używało tej przestrzeni nazw w swoim kodzie:

Microsoft.Office.Interop.Excel

Zastanawiam się więc, czy wszystko, czego potrzebuję, to dodać niezbędne odniesienie, a jeśli tak, które odniesienie dodać?

AKTUALIZACJA

Zainstalowałem „Primary Interop Assemblies” zgodnie z sugestią zaakceptowanej odpowiedzi, ale z jakiegoś powodu nadal brakuje ich w oknie dialogowym Add Reference w „.NET”, ale są one obecne w GAC.

Po prostu dodałem odniesienie za pomocą „Przeglądaj” i znalazłem się Microsoft.Office.Interop.Excel.dllw folderze GAC.

Ale szukanie podobnych pytań na tej stronie dotyczących dodawania referencji z GAC wydaje się, że nie jest to zalecane.

Odpowiedzi:


102

Aktualizacja (dzięki user2347528)

Te zestawy są dostępne jako pakiety NuGet, co jest znacznie łatwiejsze niż moja oryginalna odpowiedź.

Możesz zainstalować, klikając prawym przyciskiem myszy Referencje w projekcie i wybierając Zarządzaj pakietami NuGet ... i wyszukując jeden z wymienionych poniżej pakietów lub zainstalować za pomocą konsoli Menedżera pakietów:

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

Są one dostępne jako „Podstawowe zestawy międzyoperacyjne”, które można zainstalować z pakietem Office lub pobrać i zainstalować oddzielnie. Instrukcje: instalowanie podstawowych zestawów międzyoperacyjnych pakietu Office .

Po ich zainstalowaniu możesz odwoływać się do nich w swoim projekcie w oknie dialogowym Dodaj odniesienie w .NET. Jeśli nie widzisz wymienionych zestawów Microsoft.Office.Interop, oznacza to, że nie zostały one jeszcze zainstalowane. Zainstaluj je ze swojej konfiguracji lub pobierz i zainstaluj je osobno (zobacz mój link powyżej, aby pobrać pliki do pobrania).


Znalazłem kilka komponentów w zakładce „Com” o nazwie Microsoft Office… Czy to wszystko?
— user850010

1
Są to usługi COM, dla których program Visual Studio może generować zestawy międzyoperacyjne .NET. Nie zaleca się ich używania; należy używać zestawów PIA wydanych przez firmę Microsoft. Powinny pojawić się na karcie .NET w oknie dialogowym Dodaj odwołania. Jeśli ich nie widzisz, musisz zainstalować PIA ze swojego pakietu Office lub pobrać je osobno, ponieważ podałem link w mojej odpowiedzi.
— moribvndvs

2
@HackedByChinese Nie widzę żadnej karty .NET w oknie dialogowym dodawania referencji

1
W programie Visual Studio 2013 znalazłem te odwołania w obszarze Assemblies-> Extensions w lewym menu okna Add References.
— Benjamin Ray

1
Próbuję zainstalować program C #, który używa Microsoft.Office.Interop.Excel.dll na serwerze Windows 2012. Program działa dobrze na moim komputerze z systemem Windows 7, ale nawet po zainstalowaniu PIA na serwerze nadal otrzymuję komunikat o błędzie o brakujących składnikach System.Runtime.Interop.COM. Program przerywa pracę, gdy próbuję utworzyć wystąpienie obiektu Excel.Application (). Czy jest coś jeszcze, czego mi brakuje?
— Melanie

50

Po prostu miałem ten problem i zaakceptowana odpowiedź mi nie pomogła, ale rozwiązałem go:

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


2
Wszędzie szukałem tego rozwiązania.
— Karim O.

3
Dzięki za wskazówkę. To rozkosznie ironiczne, że sam Microsoft nie może tego niezawodnie uruchomić - 2014 i nadal odnosimy się bezpośrednio do .dlls ...
— Mike Honey

12
Add Reference-> COM-> Microsoft Excel 12.0 Object Libraryrobi to samo.
— primo

Czy to działa na serwerze? bez instalowania pakietu Office na serwerze?
— Naveen Katakam

ok dzięki. masz jakiś pomysł? czy mogę go używać bez instalowania pakietu office .. Używam lazuru.
— Naveen Katakam

24

Odpowiedzi nie pomogły mi w rozwiązaniu problemu, nie mogłem znaleźć (i przeglądać) zestawów, chociaż zainstalowałem je za pomocą instalatora MSI firmy Microsoft. U mnie montaż excela znajduje się podC:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll


Po wypróbowaniu folderów GAC, GAC_32 i GAC_64 pomyślałem, że nigdy nie będzie w ostatnim folderze GAC_MSIL. Ale to było. Dzięki za komentarz. U mnie zadziałało!
— Marty_in_a_Box,

Najprostsza i najlepsza odpowiedź. Dzięki stary.
— Wessam El Mahdy

8

Po prostu dodaj odniesienie do Microsoft.Office.Interop.Excel.

Zawiera klasy związane z MicroSoft Excel, nie ma potrzeby dodawania kolejnych odniesień.


1
To pierwsza rzecz, której spróbowałem. Ale część „Office” nie została znaleziona.
— user850010

Właściwie miałem ten sam problem co @ user850010, ale w końcu zdałem sobie sprawę, że kliknąłem prawym przyciskiem myszy i dodałem folder odniesień do niewłaściwego projektu w moim rozwiązaniu.
— Użytkownik

4

Chyba to, co staramy się robić to dodać Microsoft.Office.Interop.Excelz usingoświadczeniem z zewnątrz dodając swoje odniesienie w aplikacji, w tym przypadku przyzwyczajenie go znaleźć. Przed wywołaniem go usinginstrukcją musisz dodać odwołanie do swojej aplikacji. Kliknij prawym przyciskiem myszy Referencesi dodaj Excel Interopodniesienie.


4

Dodaj odniesienie> Przeglądaj> C:> Windows> zespół> GAC> Microsoft.Office.Interop.Excel> 12.0.0.0_wasd ..> Microsoft.Office.Interop.Excel.dll



3

Jeśli masz zainstalowany pakiet Microsoft Office, powinieneś móc dodać odniesienie do Interop.Excel.

Na przykład komputer, na którym to piszę, ma MSVS 2010 C # Express i Office 2010. Mogę dodać odwołanie do Microsoft.Office.Interop.Excel 11.0.0.0.

Mam nadzieję, że to pomoże


3

jest w składniku com o nazwie: „Biblioteka obiektów pakietu Microsoft Office 14”


1
VS2010: Dodanie odwołania COM do „Biblioteki obiektów pakietu Microsoft Office 14” powoduje jedynie dodanie odwołania do „Microsoft.Office.Core”. Lepiej: użyj odwołania COM „Biblioteka obiektów programu Microsoft Excel 14.0”. Wskazuje bezpośrednio na zainstalowany plik wykonywalny Excela, ale pojawi się jako odniesienie zarówno do „Microsoft.Office.Core”, jak i „Microsoft.Office.Interop.Excel”. Powinno pomóc, jeśli potrzebujesz tylko uruchomić i wdrożyć na komputerach z zainstalowanym programem Excel.
— JS

3

Najlepszą opcją od wersji Office 2007 jest użycie do tego pakietu SDK Open XML . Użyliśmy Word.Interop, ale czasami się on zatrzymywał i nie jest to zalecane dla Microsoft, aby używać go jako formatowania dokumentów po stronie serwera, więc Open XML SDK pozwala bardzo łatwo tworzyć dokumenty tekstowe w formatach DOCX i Open XML. Pozwala dobrze działać ze skalowalnością, pewnością (pliki, jeśli są uszkodzone, można je odbudować) i innymi bardzo dobrymi cechami.


2

Oto super solidne rozwiązanie, wystarczy mieć plik excell.dll w folderze Debug / Release. Mój ma 77 824 bajty, pobrałem go jako plik, to również wyjaśnia, dlaczego niektórzy ludzie skompilowali debugowanie, ale nie Release lub odwrotnie.

Trento


2

Po prostu miałem ten sam problem, ale żadna z tych odpowiedzi mi nie pomogła. Znalazłem bibliotekę dll na moim komputerze w lokalizacji, którą zauważył Mostey: ( C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll), ale nie jest to ta, do której odwoływano się w projekcie, który próbowałem zbudować.

Wskazuje na to odniesienie w naszym projekcie w Visual Studio 2012 C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\. To miejsce było dla mnie puste, ale dla wszystkich innych działało dobrze. Wymagało to wielu prób, ale w końcu znalazłem działający instalator. Mam nadzieję, że zaoszczędzi to innym kłopotów!

-> Instalator pakietu narzędzi biurowych dla VS2012 <-

Znajduje się na stronie Dokumentacja i pobieranie pakietu Office . Przewiń w dół do sekcji Pobieranie narzędzi . Obecnie jest również jeden dla VS2013.


1

1.Pobierz i zainstaluj: Microsoft Office Developer Tools

2. Dodaj referencje z:

C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Visual Studio Tools for Office \ PIA \ Office15


1

Miałem ten sam problem i Microsoft.Office.Interop nie pojawiał się w opcji „Dodaj odniesienie” po uaktualnieniu VS2012 do VS2015. Zasadniczo naprawiłem instalację ( Panel sterowania> Programy i funkcje> VS 2012> Kliknij prawym przyciskiem myszy Zmień> Napraw ) i dodałem składnik Microsoft Office. Potem zaczęło działać to samo rozwiązanie.


0

Upewnij się, że projekt jest 32-bitowy.

Miałem ten problem, gdy tylko zaznaczyłem „Preferuj 32-bitowe i przebuduj” wszystkie zestawy Office Interop, jeśli są dostępne w Odniesienie-> Złożenia-> Wyszukaj „Office”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.