Microsoft office interop excel как подключить
Перейти к содержимому

Microsoft office interop excel как подключить

  • автор:

Office — основные сборки взаимодействия

Для использования компонентов приложения Microsoft Office из проекта Office необходимо использовать основную сборку взаимодействия (PIA) для приложения. Основная сборка взаимодействия позволяет управляемому коду взаимодействовать с основанной на COM объектной моделью приложения Microsoft Office.

Заинтересованы в разработке решений, которые расширяют возможности Office на нескольких платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office имеют небольшое пространство по сравнению с надстройками и решениями VSTO, и вы можете создавать их практически с помощью любой технологии веб-программирования, таких как HTML5, JavaScript, CSS3 и XML.

При создании нового проекта Office Visual Studio добавляет ссылки на основные сборки взаимодействия, которые нужны для сборки проекта. В некоторых сценариях может потребоваться добавить ссылки на другие ЛИЧНЫЕ данные (например, вы можете использовать функцию Microsoft Office Word в проекте для Microsoft Office Excel).

В этой статье описаны следующие аспекты использования пиА Microsoft Office в проектах Office:

  • Отдельные основные сборки взаимодействия для создания и запуска проектов
  • Использование функций нескольких Приложение Office ликации Майкрософт в одном проекте
  • Полный список основных сборок взаимодействия для приложений Microsoft Office

Дополнительные сведения о основных сборках взаимодействия см. в разделе «Основные сборки взаимодействия».

Отдельные основные сборки взаимодействия для создания и запуска проектов

Visual Studio использует разные наборы основных сборок взаимодействия на компьютере разработки. Эти разные наборы сборок хранятся в следующих расположениях.

  • Папка в каталоге файлов программы Этот набор сборок используется при написании кода и сборки проектов. Visual Studio устанавливает эти сборки автоматически.
  • Глобальный кэш сборок Этот набор сборок используется во время некоторых задач разработки, таких как при запуске или отладке проектов. Visual Studio не устанавливает и не регистрирует эти сборки; Вам нужно сделать это самостоятельно.

Основные сборки взаимодействия в каталоге программных файлов

ПиА автоматически добавляются в расположение в файловой системе за пределами глобального кэша сборок при установке Visual Studio. При создании нового проекта Visual Studio автоматически добавляет ссылки на эти копии основных сборок взаимодействия в ваш проект. Visual Studio использует эти копии основных сборок взаимодействия вместо сборок в глобальном кэше для разрешения ссылок при разработке и построении проекта.

Если в глобальном кэше сборок зарегистрированы различные версии пиА, вы можете столкнуться с несколькими проблемами разработки. Добавленные копии пиА помогут избежать таких проблем.

Для Visual Studio 2017 и более поздних версий эти копии личных данных устанавливаются в следующие общие расположения на компьютере разработки:

  • %ProgramFiles%\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\
  • (или %ProgramFiles(x86)%\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\ в 64-разрядных операционных системах)

Для более старых версий Visual Studio эти личные данные будут установлены в папку набор средств Visual Studio для Office\PIA в папке %ProgramFiles% для этой версии Visual Studio. Пример: %ProgramFiles(x86)%\Microsoft Visual Studio 14.0\Visual Studio Tools for Office\PIA\

Основные сборки взаимодействия в глобальном кэше сборок

Для выполнения определенных задач разработки основные сборки взаимодействия должны быть установлены и зарегистрированы в глобальном кэше сборок на компьютере разработки. Как правило, сборки устанавливаются автоматически при установке Office на компьютере разработки. Дополнительные сведения см. в статье «Настройка компьютера для разработки решений Office».

ПиА Office не требуются на компьютерах конечных пользователей для запуска решений Office. Дополнительные сведения см. в статье «Проектирование и создание решений Office».

Использование функций нескольких Приложение Office ликации Майкрософт в одном проекте

Каждый шаблон проекта Office в Visual Studio предназначен для работы с одним приложением Microsoft Office. Чтобы использовать функции в нескольких Приложение Office ликациях Майкрософт или использовать функции в приложении или компоненте, у которых нет проекта в Visual Studio, необходимо добавить ссылку на необходимые личные данные.

В большинстве случаев следует добавить ссылки на пиА, установленные Visual Studio в каталоге %ProgramFiles(x86)%\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\ . Эти версии сборок отображаются на вкладке Framework диалогового окна диспетчера ссылок. Дополнительные сведения см. в статье «Практическое руководство. Целевые Приложение Office ликации с помощью основных сборок взаимодействия».

Если вы установили и зарегистрировали пиА в глобальном кэше сборок, эти версии сборок отображаются на вкладке COM диалогового окна диспетчера ссылок. Избегайте добавления ссылок на эти версии сборок, так как при их использовании возникают некоторые проблемы разработки. Например, если вы зарегистрировали разные версии пиА в глобальном кэше сборок, проект автоматически привязывается к версии сборки, зарегистрированной последней, даже если указать другую версию сборки на вкладке COM диалогового окна диспетчера ссылок.

Некоторые сборки добавляются в проект автоматически при добавлении сборки, которая на них ссылается. Например, ссылки на Office.dll сборки и Microsoft.Vbe.Interop.dll сборки добавляются автоматически при добавлении ссылки на сборки Word, Excel, Outlook, Microsoft Forms или Graph.

Основные сборки взаимодействия для microsoft Приложение Office lications

В следующей таблице перечислены основные сборки взаимодействия, доступные для Office 2016, Office 2013 и Office 2010.

Connections Интерфейс

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

Коллекция объектов Connection для указанной книги.

public interface class Connections : System::Collections::IEnumerable
[System.Runtime.InteropServices.Guid("00024486-0000-0000-C000-000000000046")] [System.Runtime.InteropServices.InterfaceType(2)] public interface Connections : System.Collections.IEnumerable
Public Interface Connections Implements IEnumerable

Реализации

Примеры

В следующем примере показано, как добавить подключение к книге из существующего файла.

Свойства

Коллекция объектов Connection для указанной книги.

При использовании без квалификатора объектов это свойство возвращает _Application объект, представляющий приложение Microsoft Office Excel. При использовании с квалификатором объектов это свойство возвращает объект Application , представляющий создателя указанного объекта. Только для чтения.

Возвращает количество объектов в коллекции. Только для чтения, Integer.

Возвращает константу в перечислении XlCreator , указывающую приложение, в котором был создан этот объект. Только для чтения.

Возвращает родительский объект для указанного объекта. Только для чтения.

Методы

Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.

Добавляет новое подключение к книге.

Добавляет подключение из указанного файла.

Добавляет подключение из указанного файла.

Коллекция объектов Connection для указанной книги.

Этот метод создает элемент подключения.

OLEDBConnection Интерфейс

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

Представляет подключение OLE DB.

public interface class OLEDBConnection
[System.Runtime.InteropServices.Guid("0002448D-0000-0000-C000-000000000046")] [System.Runtime.InteropServices.InterfaceType(2)] public interface OLEDBConnection
Public Interface OLEDBConnection

Комментарии

Подключение OLE DB может храниться в книге Excel. Когда Micrososft Excel открывает книгу, Excel создает в памяти копию подключения OLE DB, известную OLEDBConnection как объект .

Объект OLEDBConnection содержит сведения, связанные с подключением, например имя сервера для подключения и имя объектов, которые должны открываться на этом сервере. OLEDBConnection При необходимости объект может также содержать сведения об учетных данных для проверки подлинности или команду, которую необходимо передать на сервер и выполнить (например, инструкцию SELECT, выполняемую SQL Server).

Свойства

Возвращает объект подключения ADO, если кэш сводной таблицы подключен к источнику данных OLE DB. Только для чтения.

Значение true, если файл подключения всегда используется для установления подключения к источнику данных. Для чтения и записи, Boolean.

При использовании без квалификатора объектов это свойство возвращает _Application объект, представляющий приложение Microsoft Office Excel. При использовании с квалификатором объектов это свойство возвращает объект Application , представляющий создателя указанного объекта. Только для чтения.

Значение true , если запросы для подключения OLE DB выполняются асинхронно (в фоновом режиме). Для чтения и записи, Boolean.

Возвращает коллекцию CalculatedMembers для указанного подключения.

Возвращает или задает командную строку для указанного источника данных. Чтение и запись объекта.

Возвращает или задает одну из констант XlCmdType . Чтение и запись XlCmdType.

Возвращает или задает строку, содержащую параметры OLE DB, позволяющие Microsoft Excel подключаться к источнику данных OLE DB. Чтение и запись объекта.

Возвращает константу в перечислении XlCreator , указывающую приложение, в котором был создан этот объект. Только для чтения.

Значение true , если подключение может быть обновлено пользователем. Значение по умолчанию — True. Для чтения и записи, Boolean.

Возвращает значение True , MaintainConnection если свойство имеетзначение True. Возвращает значение False , если он в настоящее время не подключен к источнику. Только для чтения, Boolean.

Возвращает или задает строку подключения к автономному файлу куба. Чтение и запись объекта.

Возвращает или задает идентификатор языкового стандарта для указанного подключения.

Возвращает значение True , если подключение к указанному источнику данных сохраняется после операции обновления и до закрытия книги. Для чтения и записи, Boolean.

Возвращает или задает максимальное количество извлекаемых записей. Для чтения и записи, Integer.

Возвращает значение True , если подключение OLE DB подключено к серверу OLAP. Только для чтения, Boolean.

Возвращает родительский объект для указанного объекта. Только для чтения.

Возвращает дату последнего обновления подключения OLE DB. Дата и время даты и времени только для чтения.

Значение true , если выполняется фоновый запрос OLE DB для указанного подключения OLE DB. Для чтения и записи, Boolean.

Значение true , если подключение автоматически обновляется при каждом открытии книги. Значение по умолчанию — False. Для чтения и записи, Boolean.

Возвращает или задает количество минут между обновлениями. Для чтения и записи, Integer.

Значение true , если данные и ошибки должны быть получены на языке интерфейса пользователя Office, если они доступны. Для чтения и записи, Boolean.

Возвращает или задает способ подключения OLE DB к источнику данных. Чтение и запись XlRobustConnect.

Значение true, если сведения о пароле в строке подключения OLE DB сохраняются в строке подключения. Значение False , если пароль удален. Для чтения и записи, Boolean.

Возвращает или задает тип учетных данных, которые должны использоваться для проверки подлинности сервера. Чтение и запись XlCredentialsMethod.

Значение true , если цветовой формат заливки для сервера OLAP извлекается с сервера при использовании указанного подключения. Для чтения и записи, Boolean.

Значение true , если формат стиля шрифта для сервера OLAP извлекается с сервера при использовании указанного подключения. Для чтения и записи, Boolean.

Значение true , если числовой формат для сервера OLAP извлекается с сервера при использовании указанного подключения. Для чтения и записи, Boolean.

Возвращает или задает идентификатор приложения единого входа, который используется для поиска учетных данных в базе данных единого входа. Для чтения и записи, String.

Значение true , если формат цвета текста для сервера OLAP извлекается с сервера при использовании указанного подключения. Для чтения и записи, Boolean.

Возвращает или задает строку, указывающую файл подключения к данным Microsoft Office или аналогичный файл, который использовался для создания подключения. Для чтения и записи.

Возвращает или задает строку, указывающую исходный файл данных для подключения OLE DB. Для чтения и записи.

Значение true , LocalConnection если свойство используется для указания строки, позволяющей Microsoft Excel подключаться к источнику данных. Значение False , если используется строка подключения, Connection указанная свойством . Для чтения и записи, Boolean.

Методы

Отменяет все выполняемые операции обновления для указанного подключения OLE DB.

Устанавливает подключение для указанного подключения OLE DB.

Удаляет и повторно подключает указанное подключение.

Обновляет подключение OLE DB.

Сохраняет подключение OLE DB как файл подключения к данным Microsoft Office.

Как автоматизировать Excel с помощью Visual C# для заполнения или получения данных в диапазоне с помощью массивов

В этой статье показано, как автоматизировать Microsoft Excel с помощью Microsoft Visual C# 2005 или Microsoft Visual C# .NET для заполнения и извлечения значений в диапазоне с несколькими ячейками с помощью массивов.

Дополнительная информация

Чтобы заполнить диапазон с несколькими ячейками, не заполняя ячейки по одному, можно задать для свойства Value объекта Range двумерный массив. Аналогичным образом можно получить двумерный массив значений для нескольких ячеек одновременно с помощью свойства Value. Следующие шаги демонстрируют этот процесс как для настройки, так и для извлечения данных с помощью двумерных массивов.

Создание клиента автоматизации для Microsoft Excel

  1. Запустите Microsoft Visual Studio 2005 или Microsoft Visual Studio .NET.
  2. В меню Файл выберите команду Создать, а затем выберите Проект. Выберите приложение Windows в типах проектов Visual C#. Form1 создается по умолчанию.
  3. Добавьте ссылку на библиотеку объектов Microsoft Excel 11.0 в Visual Studio 2005 или библиотеку объектов Microsoft Excel в Visual Studio .NET. Для этого выполните следующие действия:
    1. On the Project menu, click Add Reference.
    2. На вкладке COM найдите библиотеку объектов Microsoft Excel и нажмите кнопку «Выбрать».

    В Visual Studio 2005 найдите библиотеку объектов Microsoft Excel 11.0 на вкладке COM .

    Примечание Microsoft Office 2003 включает основные сборки взаимодействия (PIA). Microsoft Office XP не включает персональные данные, но их можно скачать.

    private void button1_Click(object sender, System.EventArgs e)
     //Declare these two variables globally so you can access them from both //Button1 and Button2. Excel.Application objApp; Excel._Workbook objBook; private void button1_Click(object sender, System.EventArgs e) < Excel.Workbooks objBooks; Excel.Sheets objSheets; Excel._Worksheet objSheet; Excel.Range range; try < // Instantiate Excel and start a new workbook. objApp = new Excel.Application(); objBooks = objApp.Workbooks; objBook = objBooks.Add( Missing.Value ); objSheets = objBook.Worksheets; objSheet = (Excel._Worksheet)objSheets.get_Item(1); //Get the range where the starting cell has the address //m_sStartingCell and its dimensions are m_iNumRows x m_iNumCols. range = objSheet.get_Range("A1", Missing.Value); range = range.get_Resize(5, 5); if (this.FillWithStrings.Checked == false) < //Create an array. double[,] saRet = new double[5, 5]; //Fill the array. for (long iRow = 0; iRow < 5; iRow++) < for (long iCol = 0; iCol < 5; iCol++) < //Put a counter in the cell. saRet[iRow, iCol] = iRow * iCol; >> //Set the range value to the array. range.set_Value(Missing.Value, saRet ); > else < //Create an array. string[,] saRet = new string[5, 5]; //Fill the array. for (long iRow = 0; iRow < 5; iRow++) < for (long iCol = 0; iCol < 5; iCol++) < //Put the row and column address in the cell. saRet[iRow, iCol] = iRow.ToString() + "|" + iCol.ToString(); >> //Set the range value to the array. range.set_Value(Missing.Value, saRet ); > //Return control of Excel to the user. objApp.Visible = true; objApp.UserControl = true; > catch( Exception theException ) < String errorMessage; errorMessage = "Error: "; errorMessage = String.Concat( errorMessage, theException.Message ); errorMessage = String.Concat( errorMessage, " Line: " ); errorMessage = String.Concat( errorMessage, theException.Source ); MessageBox.Show( errorMessage, "Error" ); >> 
    private void button2_Click(object sender, System.EventArgs e)
    private void button2_Click(object sender, System.EventArgs e) < Excel.Sheets objSheets; Excel._Worksheet objSheet; Excel.Range range; try < try < //Get a reference to the first sheet of the workbook. objSheets = objBook.Worksheets; objSheet = (Excel._Worksheet)objSheets.get_Item(1); >catch( Exception theException ) < String errorMessage; errorMessage = "Can't find the Excel workbook. Try clicking Button1 " + "to create an Excel workbook with data before running Button2."; MessageBox.Show( errorMessage, "Missing Workbook?"); //You can't automate Excel if you can't find the data you created, so //leave the subroutine. return; >//Get a range of data. range = objSheet.get_Range("A1", "E5"); //Retrieve the data from the range. Object[,] saRet; saRet = (System.Object[,])range.get_Value( Missing.Value ); //Determine the dimensions of the array. long iRows; long iCols; iRows = saRet.GetUpperBound(0); iCols = saRet.GetUpperBound(1); //Build a string that contains the data of the array. String valueString; valueString = "Array Data\n"; for (long rowCounter = 1; rowCounter //Write in a new line. valueString = String.Concat(valueString, "\n"); > //Report the value of the array. MessageBox.Show(valueString, "Array Values"); > catch( Exception theException ) < String errorMessage; errorMessage = "Error: "; errorMessage = String.Concat( errorMessage, theException.Message ); errorMessage = String.Concat( errorMessage, " Line: " ); errorMessage = String.Concat( errorMessage, theException.Source ); MessageBox.Show( errorMessage, "Error" ); >> 
    1. Прокрутите страницу до верхней части окна кода. Добавьте следующую строку в конец списка директив using:
    using System.Reflection; using Excel = Microsoft.Office.Interop.Excel; 

    Тестирование клиента службы автоматизации

    1. Нажмите клавишу F5, чтобы выполнить сборку и запуск примера программы.
    2. Нажмите кнопку1. Программа запускает Microsoft Excel с новой книгой и заполняет ячейки A1:E5 первого листа числовыми данными из массива.
    3. Нажмите кнопку «Кнопка2». Программа извлекает данные из ячеек A1:E5 в новый массив и отображает результаты в окне сообщения.
    4. Выберите FillWithStrings и нажмите кнопку Button1, чтобы заполнить ячейки A1:E5 строковыми данными.

    Ссылки

    Дополнительные сведения см. на следующем веб-сайте Microsoft Developer Network (MSDN):

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *