18 мая 2012 года    
Пятница | 22:26    
Главная
 Новости
Базы данных
Безопасность PC
Всё о компьютерах
Графика и дизайн
Интернет-технологии
Мобильные устройства
Операционные системы
Программирование
Программы
Связь
Сети
 Документация
Статьи
Самоучители
 Общение
Форум





Разделы / Всё о компьютерах / Другие

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

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

Алесандр Тарадым

Введение

Довольно часто в прикладных приложениях, работающих с базами данных, статистическими данными и т.п., возникает проблема создания отчетов с последующим их анализом. В качестве идеального средства анализа может быть использован Microsoft Excel, широко известный продукт из поставки Microsoft Office, обладающий громадными возможностями. Вы, может быть, подумали, что в статье я буду учить вас набивать данные в Excel вручную, а затем писать скрипты, обрабатывающие эти данные? Вовсе нет, мы займемся более интересным делом. Мы заставим Excel плясать под нашу дудку, выполняя все, что мы пожелаем. Что для этого нужно? Во-первых, конечно, сам Microsoft Excel, версия в принципе не важна, т.к. приведенные примеры будут работать и под 97 и под 2000 офисом. Желательно при установке Microsoft Office полностью установить файлы помощи - файл VBAXL8.HLP (или VBAXL9.CHM в случае Office2000) содержит очень полезную информацию об иерархии объектов Excel, с которыми нам придется работать. Второе требование - Borland C++Builder или Delphi. Приведенные примеры подготовлены в среде Borland C++Builder 5.0, не думаю, что составит большого труда переписать их под Delphi. И, наконец, самое главное требование - это желание научиться чему-нибудь полезному и время для этого. Начнем, пожалуй, с основ, с того, на чем все базируется.

Немного теории

Будем отталкиваться от того, что вы имеете представление, что такое указатель и что такое класс в С++. Без этих знаний вам будет тяжеловато разобраться в механизме автоматизации, а бездумное переписывание примеров ничего вам не даст.

Итак, как вы понимаете, в "процессе" принимают участие 2 основных объекта: приложение, которое мы собрались автоматизировать (или попросту говоря, которым мы будем управлять) - оно называется сервером автоматизации - и наше приложение, оно называется контроллером автоматизации. Сервер автоматизации состоит из одного или (чаще) нескольких объектов или компонент, реализующих функциональность сервера. Автоматизация выполняется при помощи вызовов методов этих объектов.

Объекты в составе сервера обычно образуют иерархическую структуру.

Итак, с сервером и контроллером мы разобрались. Давайте разберемся с понятием интерфейса. Начальные сведения о том, что такое интерфейс и как он используется в программировании, можно почерпнуть из статьи "Использование интерфейсов при работе с DLL". В нашем случае интерфейс - своего рода буфер между объектом сервера автоматизации и контроллером автоматизации. Интерфейс позволяет вызывать методы объекта и обращаться к его свойствам в простой форме, по имени, что-то типа pIterface -> MemberFunction1(), а также обеспечивает проверку типов параметров функций. Почему не обращаться к public-методам класса реализующего объект напрямую, спросите вы? А потому, что тогда наш код должен находиться в одном адресном пространстве с кодом класса, при изменении реализации класса наш код должен перекомпилироваться, т.е. он сможет работать только с одной реализацией (или, фактически, версией) сервера. При использовании интерфейса же клиент абсолютно независим от реализации объекта. Из-за того, что интерфейс физически представляет собой указатель, он легко может передаваться между процессами или компьютерами.

Т.е., как видите, интерфейс по существу является указателем на указатель на массив указателей на функции-методы (и свойства) объекта.

Реклама
 Автоматизация Microsoft Excel
Лента новостей


2006 (c) Copyright Hardline.ru