Часть 3. Использование COM-серверов Microsoft Office
В этом разделе приводятся краткое описание основных объектов двух наиболее популярных серверов — Excel и Word, а также примеры использования Excel в стиле VBA (по имени) и с помощью компонентов страницы Servers. Поскольку специально для версии MS Office 97 язык VBA был существенно расширен, этот материал нельзя использовать для работы с более ранними версиями пакета.
Основные объекты серверов Excel и Word
Объекты Excel
На рис. 1 представлена функциональная структура объектов и коллекций Excel.
Объект Application имеет многочисленные свойства, методы и события, управляющие сервером в целом. Только с его помощью, например, можно визуализировать полнофункциональное окно текстового процессора. Его центральное свойство Workbooks предоставляет доступ ко всем открытым в процессоре рабочим книгам.
Объекты Word
На рис. 2 показана функциональная иерархия объектов Word.
Позднее связывание
На рис. 3 показан прайс-лист в окне Excel, а на рис. 4 — вид формы примера на этапе конструирования.
Перед началом работы над проектом следует скопировать все файлы BOOKS.* в отдельную папку на жестком диске (потребуется чуть больше 800 Кбайт свободного пространства) и связать с папкой псевдоним BDE BIBLDATA типа Standard. Эту процедуру упростит программа SetupBooks.exe, расположенная в том же каталоге CD-ROM.
Начните новый проект и поместите на форму компоненты Query1, Label1, Button1 и ProgressBar1. Для компонента Query1 измените значение свойства Name на Books, свяжите его с псевдонимом BIBLDATA и поместите в свойство SQL такой запрос:
Создайте для него все объекты-поля. В свойство Caption компонента Label1 поместите значение Щелкните по кнопке Пуск, чтобы создать таблицу Excel, в такое же свойство кнопки — значение Пуск и измените имя компонента ProgressBar1 на pb.
В окне кода в разделе private класса TForm1 поместите поле Excel типа Variant. В предложении uses укажите ссылку на модуль COMObj и напишите следующий обработчик события OnClick кнопки Button1 (см. листинг 1).
Переменная Excel определяет поле класса TForm1. При создании класса в него автоматически помещается значение VarEmpty. После завершения работы с Excel пользователь может закрыть его. Но в моей программе Excel не визуализировался, его работа проходила «за кулисами», а созданная таблица записывалась в указанный пользователем файл с помощью оператора Excel.Workbooks[1].SaveAs(FileName).
После этого Excel закрывался. Поскольку в нашем случае Excel показывает свое окно, а пользователь может его не закрыть, полезно написать такой обработчик события OnDestroy формы:
Запуская пример, помните, что создание прайс-листа с помощью Excel — процесс достаточно длительный. На моем компьютере (400 МГц, 64 Мбайт) он занял около минуты (для примера — аналогичный прайс-лист средствами Quick Report создается менее чем за 2 с). В конце обработчика в метку lb помещается общее время работы.
Раннее связывание
Как видите, он во многом напоминает обработчик предыдущего примера. Поэтому остановлюсь на различиях.
Все мои попытки работать с объектами Range оказались неудачными. Чтобы вы не слишком осуждали меня, я поместил библиотеку типов Excel_TLB.pas в каталог размещения примера — полистайте ее на досуге и попробуйте найти нужное решение для изменения ширины колонок и полей листа, а также для раскрашивания диапазона, выравнивания текста и т.п.
Есть свои нюансы и при обращении к ячейкам. Во-первых, ими владеет объект Application, а не Sheet. Во-вторых, обращение к конкретному элементу коллекции Cells (как и любой другой коллекции) возможно только через ее свойство Item.
Excel открывает пустой экран, если дважды щелкнуть значок или имя файла — Office | Microsoft Docs
Silverlight Excel Автоматизация Factory API Документация Привет, я использую фабрику автоматизации Excel для экспорта данных из silverlight в excel. Проблема в том, что я не могу найти документацию по использованию excel таким образом. Все, что я мог найти, где какой-то небольшой учебник, из.