Программирование >>  Автоматически обновляемые приложения 

1 ... 132 133 134 [ 135 ] 136 137 138 ... 170


Листинг 15.1. Пример раннего связывания

using System. Ref lections-using Excel = Microsoft.Office.Interop.Excel;

private void buttonl Click(object sender. System.EventArgs e) {

Excel.Application objApp; Excel. Workbook objBook; Excel.Workbooks objBooks; Excel.Sheets objSheets; Excel. Worksheet objSheet; Exce1.Range range;

Создание экземпляра Excel и запуск новой рабочей книги objApp = new Excel.Application О; objBooks = objApp.Workbooks;

стрее, чем позднее. Однако разница в производительности, как правило, незначительна.

При этом у раннего связывания есть один недостаток, который заключается в том, что оно может вызвать проблемы совместимости версий. Например, если в новой версии Microsoft Excel появился новый метод или свойство, которые были недоступны в предыдущей версии Microsoft Excel, и программист к нему обращается, то при работе с предьщущими версиями вероятно появление различных ошибок. Аналогичная ситуация возникнет, если были внесены изменения в существующие методы или свойства. Сама компания Microsoft рекомендует для предотвращения подобных проблем с ранним связыванием использовать сведения о типах для самой ранней версии поддерживаемого приложения Microsoft Office.

Рассмотрим пример создания проекта, использующего раннее связывание.

1. Создайте новый проект Windows Application.

2. Добавьте ссылку на библиотеку Microsoft Excel 12.0 Object Library (для этого вызовите меню Project Add Reference и в открывшемся окне на вкладке СОМ выберите Microsoft Excel 12.0 Object Library).

3. Поместите на форму кнопку ButtonL

4. Откройте редактор кода и добавьте код, приведенный в листинге 15.1.



В этом примере мы устанавливали ссылку на библиотеку Microsoft Excel 12.0 Object Library, которая относится к Microsoft Excel 2007. Если у вас установлена другая версия MS Excel, то используйте соответствующий порядковый номер библиотеки.

Примечание

Пример находится в папке EariyBinding на прилагаемом диске.

Автоматизация Excel

или как работать массивами

в статье из Базы Знаний по адресу http: support.microsoft.com/kb/302096/

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

objBook = objBooks.Add(Missing.Value); objSheets = objBook.Worksheets;

ob]Sheet = (Excel. Worksheet)objSheets.get Item(1);

Присваиваем текст ячейке СЗ range = objSheet.get Range( СЗ , Missing.Value);

range.set Value(Missing.Value, C#.Народные советы );

Возвращение контроля над Excel пользователю. 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 );



[Листинг 15.2 Пример работы с массивами в Excel

using System. Ref lections-using Excel = Microsoft.Office.Interop.Excel;

Excel.Application objApp; Excel. Workbook objBook;

private void buttonl Click(object sender, EventArgs e) {

Excel.Workbooks objBooks; Excel.Sheets objSheets; Excel . Worksheet obj Sheets-Excel. Range ranges-try {

Создание экземпляра Excel и запуск новой рабочей книги

objApp = new Excel.Application О;

objBooks = objApp.Workbooks;

objBook = objBooks.Add(Missing.Value);

objSheets = objBook.Worksheets;

objSheet = (Excel. Worksheet)objSheets.get Item(1) ;

Получение области (range), начальная ячейка которой имеет адрес m sStartingCell размером m iNumRows х m iNumCols range = objSheet.get Range( Al , Missing.Value); range = range.get Resize(5, 5);

ному массиву. Аналогично, вы можете получить двумерный массив значений для ячеек за один раз при помощи свойства value. Покажем это на конкретном примере.

1. Создайте новый проект и добавьте ссылку на библиотеку Microsoft Excel 12.0 Object Library (вызовите команду меню Project Add Reference и на вкладке СОМ в открывшемся окне выделите в списке строку Microsoft Excel 12.0 Object Library).

2. Добавьте на форму две кнопки.

3. Добавьте на форму элемент управления сьесквох с именем и текстом

FillWithStrings.

4. Напишите код, приведенный в листинге 15.2.



1 ... 132 133 134 [ 135 ] 136 137 138 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика