Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

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

div.main {margin-left: 20pt; margin-right: 20pt} Автоматизация 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-методам класса реализующего объект напрямую, спросите вы? А потому, что тогда наш код должен находиться в одном адресном пространстве с кодом класса, при изменении реализации класса наш код должен перекомпилироваться, т.е. он сможет работать только с одной реализацией (или, фактически, версией) сервера. При использовании интерфейса же клиент абсолютно независим от реализации объекта. Из-за того, что интерфейс физически представляет собой указатель, он легко может передаваться между процессами или компьютерами.

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



  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте