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.

user850010
źródło

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

moribvndvs
źródło
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

Robert
źródło
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

0x8BADF00D
źródło
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ń.

RAKESH HOLKAR
źródło
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.

Misam
źródło
4

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

Turański
źródło
4

Znalazłem go w obszarze Zespoły-> Rozszerzenia w VS2013.

Dodaj odniesienie

bluebunny72
źródło
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

paulsm4
źródło
3

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

James Tan
źródło
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.

JosefMadrid
źródło
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

Mario Trento
źródło
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.

thehelix
źródło
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

Artur Tarnowski
źródło
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.

sk1900
źródło
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”.

spludlow
źródło