Какая ссылка мне нужна для использования Microsoft.Office.Interop.Excel в .NET?


102

Я заинтересован в использовании C # для управления / автоматизации файлов Excel.

После просмотра веб-страниц я нашел VSTO, но, похоже, вы не можете использовать его в Visual Studio Express Edition, поэтому я не могу его использовать.

Всего несколько минут назад я заметил вопрос на этом сайте, который использовал это пространство имен в своем коде:

Microsoft.Office.Interop.Excel

Поэтому мне интересно, все ли, что мне нужно, это добавить необходимую ссылку, и если да, то какую ссылку добавить?

ОБНОВИТЬ

Я установил «Основные сборки взаимодействия» в качестве предложенного принятого ответа, но по какой-то причине они все еще отсутствуют в диалоговом окне «Добавить ссылку» в разделе «.NET», но они присутствуют в GAC.

Поэтому я просто добавил ссылку с помощью «Обзор» и разместил ее Microsoft.Office.Interop.Excel.dllв папке GAC.

Но если поискать аналогичные вопросы на этом сайте относительно добавления ссылки из GAC, кажется, что это не рекомендуется.

Ответы:


102

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

Эти сборки доступны в виде пакетов NuGet, что намного проще, чем мой исходный ответ.

Вы можете установить, щелкнув правой кнопкой мыши ссылку в своем проекте и выбрав Управление пакетами NuGet ... и выполнив поиск одного из пакетов, перечисленных ниже, или установив с помощью консоли диспетчера пакетов:

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

Они доступны как «Основные сборки взаимодействия», которые можно установить вместе с Office или загрузить и установить отдельно. Как установить основные сборки взаимодействия Office .

После их установки вы можете ссылаться на них в своем проекте в диалоговом окне «Добавить ссылку» в разделе .NET. Если вы не видите эти сборки Microsoft.Office.Interop в списке, значит, они еще не установлены. Установите их из своей установки или загрузите и установите их отдельно (см. Мою ссылку выше для загрузок).


Я нашел кучу компонентов на вкладке "Com" под названием Microsoft Office .... Это все?
user850010

1
Это COM-службы, для которых Visual Studio может создавать сборки взаимодействия .NET. Их не рекомендуется использовать; вам следует использовать сборки PIA, выпущенные Microsoft. Они должны появиться на вкладке .NET в диалоговом окне «Добавить ссылки». Если вы их не видите, вам необходимо установить PIA из настройки Office или загрузить их отдельно, как я указал в своем ответе.
moribvndvs

2
@HackedByChinese Я не вижу вкладки .NET в диалоговом окне добавления ссылок

1
В Visual Studio 2013 я нашел эти ссылки в разделе Assemblies-> Extensions в левом меню окна Add References.
Бенджамин Рэй,

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делает то же самое.
primo

Он работает на сервере? без установки офиса на сервер?
Навин Катакам

хорошо, спасибо. у тебя есть идеи? могу я использовать его без установки офиса .. Я использую лазурный.
Навин Катакам,

24

Ответы не помогли мне решить мою проблему, я не смог найти (и просмотреть) сборки, хотя я установил их с помощью установщика Microsoft msi. Для меня сборка 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
Это первое, что я попробовал. Но «офисной» части не обнаружено.
user850010

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

4

Я предполагаю , что вы пытаетесь сделать , это добавить Microsoft.Office.Interop.Excelс usingзаявлением с добавлением из его ссылки в приложении, в этом случае он не будет найден. Прежде чем вызывать его с помощью usingоператора, вам нужно добавить ссылку на приложение ur. Щелкните правой кнопкой мыши Referencesи добавьте Excel Interopссылку.


4

Добавить ссылку> Обзор> C:> Windows> сборка> GAC> Microsoft.Office.Interop.Excel> 12.0.0.0_wasd ..> Microsoft.Office.Interop.Excel.dll



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

Лучший вариант с Office 2007 - использовать для этого Open XML SDK . Мы использовали Word.Interop, но он иногда останавливается, и Microsoft не рекомендует использовать его в качестве форматирования документов на стороне сервера, поэтому Open XML SDK позволяет очень легко создавать текстовые документы в форматах DOCX и Open XML. Это позволяет вам хорошо работать с масштабируемостью, уверенностью (файлы, если они повреждены, могут быть восстановлены) и другими очень хорошими характеристиками.


2

Вот супер надежное решение, вам просто нужно иметь excell.dll в папке Debug / Release. Мой - 77 824 байта, я загрузил его в виде файла, это также объясняет, почему некоторые люди скомпилировали Debug, но не Release, или наоборот.

Тренто


2

У меня была такая же проблема, но ни один из этих ответов мне не помог. Я нашел dll на своем компьютере в том месте, где Мости отметил: ( 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 для VS2012 <-

Он был расположен на странице документации и загрузки Office . Прокрутите вниз до Инструменты Загрузки . Также в настоящее время есть один для VS2013.


1

1. Загрузите и установите: Инструменты разработчика Microsoft Office.

2. Добавьте ссылки из:

C: \ Program Files (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, доступные в Справочнике-> Сборки-> Поиск «Office».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.