Яке посилання мені потрібно використовувати Microsoft.Office.Interop.Excel в .NET?


102

Мені цікаво використовувати C # для маніпулювання / автоматизації файлів Excel.

Після перегляду Інтернету я знайшов VSTO, але, здається, ви не можете використовувати його у Visual Studio Express Edition, тому я не можу його використовувати.

Кілька хвилин тому я помітив запитання на цьому веб-сайті, яке використовувало це простір імен у своєму коді:

Microsoft.Office.Interop.Excel

Тож мені цікаво, чи все, що мені потрібно використовувати, - це додати необхідну посилання, і якщо так, яку посилання додати?

ОНОВЛЕННЯ

Я встановив "Первинні збори Interop" як прийняту відповідь, але чомусь вони все ще відсутні у діалоговому вікні "Додати довідник" у розділі ".NET", але вони є у GAC.

Тож я просто додав посилання за допомогою "Огляд" і розташований Microsoft.Office.Interop.Excel.dllу папці GAC.

Але шукати подібні запитання на цьому сайті щодо додавання посилань від GAC, здається, це не рекомендується.

Відповіді:


102

Оновлення (спасибі user2347528)

Ці збірки доступні як пакети NuGet, що набагато простіше, ніж моя оригінальна відповідь.

Ви можете встановити, клацнувши правою кнопкою миші посилання Посилання у вашому проекті та вибравши Керувати пакетами NuGet ... та шукати один із перелічених нижче пакетів або встановити за допомогою консолі диспетчера пакетів:

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

Вони доступні як "Первинні збори Interop", які можна встановити в Office, або завантажити та встановити окремо. Як: встановити основні збори Office Interop .

Після встановлення ви можете посилатися на них у своєму проекті у діалоговому вікні Додати довідку під .NET. Якщо ви не бачите цих перелічених збірок Microsoft.Office.Interop, вони ще не встановлені. Встановіть їх із налаштувань або завантажте та встановіть їх окремо (див. Моє посилання вище про завантаження).


Я знайшов купу компонентів на вкладці "Com" під назвою Microsoft Office .... Це вони?
користувач850010

1
Це COM-сервіси, для яких Visual Studio може генерувати збірки .NET interop. Не рекомендується використовувати ці; слід використовувати збірки PIA, випущені від Microsoft. Вони повинні відображатися на вкладці .NET у діалоговому вікні Додати посилання. Якщо ви їх не бачите, вам потрібно встановити PIA з установки Office або завантажити їх окремо, як я пов’язав у своїй відповіді.
moribvndvs

2
@HackedByChinese Я не бачу жодної вкладки .NET у діалоговому вікні "Додати посилання"

1
У Visual Studio 2013 я знайшов ці посилання у розділі Асамблеї-> Розширення у лівому меню вікна Додати посилання.
Бенджамін Рей

1
Я намагаюся встановити програму C #, яка використовує Microsoft.Office.Interop.Excel.dll на сервер Windows 2012. Програма добре працює на моєму ПК з Windows 7, але навіть після встановлення PIA на сервер я все одно отримую повідомлення про помилку щодо відсутніх компонентів System.Runtime.Interop.COM. Програма зривається, коли я намагаюся створити об'єкт Excel.Application (). Ще щось мені не вистачає?
Меланія

50

Просто у мене була ця проблема, і прийнята відповідь не допомогла мені, але я вирішив її:

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


2
Я шукав це рішення скрізь.
Карим О.

3
Дякую за пораду. Приємно іронічно, що самі Microsoft не можуть зробити це надійно надійним - 2014 рік, і ми все ще відносимось безпосередньо до .dlls ...
Майк Мед

12
Add Reference-> COM-> Microsoft Excel 12.0 Object Libraryробить те саме.
прим

Це працює на сервері? без установки офісу на сервер?
Naveen Katakam

добре, дякую. у вас є ідея? Чи можу я використовувати його без встановлення офісу .. Я використовую azure.
Naveen Katakam

24

Відповіді не допомогли мені вирішити свою проблему, я не зміг знайти (і переглянути) збірки, хоча я встановив їх за допомогою установки MSI Microsoft. Для мене збірка excel знаходиться підC:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll


Після того як я спробував папки GAC, GAC_32 та GAC_64, я подумав, що він ніколи не буде в останній папці GAC_MSIL. Але це було. Дякуємо за Ваш коментар Для мене чудово працювали!
Marty_in_a_Box

Найпростіша і найкраща відповідь. Дякую, чувак.
Wessam El Mahdy

8

Просто додайте посилання на Microsoft.Office.Interop.Excel.

Він включає класи, пов’язані з MicroSoft Excel, не потрібно додавати більше посилань.


1
Це перше, що я спробував. Але "Office" частини не знайдено.
користувач850010

Насправді була така ж проблема, як і @ user850010, але нарешті зрозумів, що я клацнув правою кнопкою миші та додав у папку посилань неправильного проекту у своєму рішенні.
Користувач

4

Я думаю, те, що ви намагаєтеся зробити, це додати Microsoft.Office.Interop.Excelз usingзаявою з додаванням своєї посилання у вашій заявці, і в такому випадку вона не буде знайдена. Перш ніж зателефонувати йому з usingзаявою, вам потрібно додати посилання на додаток до ур. Клацніть правою кнопкою миші Referencesта додайте Excel Interopпосилання.


4

Додати посилання> Огляд> C:> Windows> збірка> GAC> Microsoft.Office.Interop.Excel> 12.0.0.0_wasd ..> Microsoft.Office.Interop.Excel.dll


4

Я виявив, що він розміщений у розділі Асамблеї-> Розширення у VS2013.

Додати довідку


3

Якщо у вас встановлено Microsoft Office, ви повинні мати можливість додати посилання на Interop.Excel.

Наприклад, на ПК, на якому я це набираю, є MSVS 2010 C # Express і Office 2010. Я можу додати посилання на Microsoft.Office.Interop.Excel 11.0.0.0.

«Сподіваюсь, що це допомагає


3

його в компоненті com, названому: "Бібліотека об'єктів Microsoft Office 14"


1
VS2010: Додавання посилання COM на "Об'єктну бібліотеку Microsoft Office 14" додає лише посилання на "Microsoft.Office.Core". Краще: використовуйте посилання COM "Бібліотека об'єктів Microsoft Excel 14.0". Він вказує безпосередньо на встановлений виконуваний файл Excel, але відображатиметься як посилання на "Microsoft.Office.Core" та "Microsoft.Office.Interop.Excel". Допомагає, якщо вам потрібно запустити та розгорнути лише на машинах, на яких встановлений Excel.
JS

3

Найкращим варіантом з офісу 2007 року є використання Open XML SDK для нього. Ми використовували Word.Interop, але це іноді зупиняється, і це не рекомендується Microsoft використовувати його як форматування документа на стороні сервера, тому Open XML SDK дозволяє створювати текстові документи у форматах DOCX та Open XML дуже легко. Це дозволяє вам добре змінювати масштабність, впевненість (файли, якщо вони пошкоджені, можна відновити) та ще одні дуже тонкі характеристики.


2

Ось супер надійне рішення, вам просто потрібно мати excell.dll у вашій папці налагодження / випуску. Моя - 77 824 байт, я завантажив його як файл, це також пояснює, чому деякі люди складали налагодження, але випускати ні, або навпаки.

Тренто


2

У мене просто була така ж проблема, але жодна з цих відповідей мені не допомогла. Я знайшов dll на своєму ПК у тому місці, де Mostey зазначив: ( C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll), але це не той, на який посилався проект, на який я намагався отримати будівлю.

Посилання на наш проект у Visual Studio 2012 вказували на C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\. Це місце для мене було порожнім, але воно працювало чудово для всіх інших. Це пройшло кілька спроб, але я нарешті відшукав працюючого інсталятора. Я сподіваюся, що це рятує інших тих же клопотів!

-> Інсталятор пакета Office Tools для VS2012 <-

Це було розміщено на сторінці документації та завантаження Office . Прокрутіть униз до " Завантаження інструментів" . Наразі є одна для VS2013.


1

1.Завантажте та встановіть: Інструменти для розробників Microsoft Office

2.Додайте посилання від:

C: \ Файли програм (x86) \ Microsoft Visual Studio 11.0 \ Інструменти Visual Studio для Office \ PIA \ Office15


1

У мене була така ж проблема, і Microsoft.Office.Interop не з'являвся в опції "Додати довідку", коли я оновив VS2012 до VS2015. Я в основному відремонтував установку ( Панель управління> Програми та функції> VS 2012> Клацніть правою кнопкою миші Змінити> Відновити ) та додав компонент Microsoft Office. Після цього те саме рішення почало працювати.


0

Переконайтеся, що ваш проект 32-бітний

У мене виникла ця проблема, як тільки я поставив галочку "Віддати перевагу 32-бітовій версії та перебудувавши" всі збори Office Interop, якщо вони доступні у довідці-> збори-> пошук "офіс".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.