Импорт информации из Delphi в WordИсточник: welikeit Владимир Богдановский
Известно, что Word является OLE-объектом. Суть OLE технологии - возможность из разрабатываемого приложения(клиента) взаимодействовать с другими приложениями(серверами). Все приложения Microsoft Office являются так называемыми "серверами автоматизации". Microsoft Word, являясь сервером OLE, позволяет подключаться к себе клиентам и использовать свои методы и свойства. Алгоритм импорта данных в Word следующий: 1) Подключение к серверу Word производится следующим образом:
Сначала вводим вариантную переменную, затем создаем объект OLE 'Word.Application', и присваиваем его этой переменной. Эта процедура называется "создание экземпляра сервера". Создав этот объект, мы затем программируем его свойства и методы. 2) после создания экземпляра сервера, нужно либо создать новый документ, либо открыть уже имеющийся, дабы только что созданный экземпляр сервера не содержит документов и, следовательно информацию импортировать нам пока что некуда. Создание нового документа Создание документа производится методом Add: Синтаксис метода: Add (Template, NewTemplate, DocumentType, Visible) Все параметры метода - типа Variant и необязательны,
Так как все параметры являются необязательными, то для создания нового документа по шаблону Normal метод можно применить без параметров: Application.Documents.Add; Для создания нового документа по шаблону <Шаблон.dot> метод применяется следующим образом
Например, создание нового документа в виде Web-страницы будет выглядеть как
Все параметры в методах объявляются типа OleVariant. Если параметр не используется в методе, то вместо него указывается EmptyParam, что означает пустой параметр. Открытие документа Открытие существующего документа Word реализуется методом Open. Open (FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument, WritePasswordTemplate, Format, Encoding, Visible)
Например, для открытия документа "c:\Example.doc" метод Open применяется как
а для файла "C:\Exam.doc" с паролем на открытие "1" как:
3) Все элементы рассматриваемого OLE объекта являются так называемыми коллекциями. Коллекция - есть объект, содержащий специфический набор методов и свойств. Коллекция похожа на динамический массив. В ней содержится набор объектов, которые обычно имеют один тип. Вы можете добавлять в нее элементы, удалять и получать их значения. Доступ к элементу осуществляется либо по его порядковому номеру, либо по его имени. Например, все открытые документы представляют собой коллекцию. Обращение к документу Обращение к открытому документу, как к элементу набора коллекции, можно по порядковому номеру методом Item. Например, обращение ко второму документу будет выглядеть как:
Нумерация всех элементов в коллекции начинается с единицы, а не с нуля. Аналогичную операцию можно осуществить еще как.
Для работы с документом, его сначала нужно активизировать, т.е. передать ему фокус, подготовить для редактирования или других операций. Активизирование документа производится методом Activate. Для активизации документа, его нужно выбрать из коллекции по его порядковому номеру:
или по имени файла:
к активному документу можно обращаться, используя свойство
3) Внесение изменений в документы. Теперь настала очередь изучить иерархию методов и свойств OLE объекта.В упрощенном виде картина выглядит следующим образом:
рис.1 Суть иерархии следующая: объект Application содержит коллекцию документов Documents, тот в свою очередь содержит коллекцию Paragraphs (абзацев), областей документа Range, таблиц Table, закладок Bookmark. Вставка текста в документ Далее по тексту мы в основном будем манипулировать коллекций объектов Range, т.е. весь текст удобно будет рассматривать как несколько непрерывных областей. Добавление текста осуществляется следующим образом: сначала создается объект Range, представляющий собой непрерывную область документа, затем методами этого объекта добавляется текст. Объект Range может объявляться как выражение.Range (начало области, конец области) например, объявленный ниже объект Range1 охватывает собой первые 10 символов второго документа.
В документе сначала можно создавать абзацы, т.е. объекты Paragraphs, и затем объединять их в области. К примеру, в начале активного документа методом Add объекта Paragraphs создаем новый абзац, затем на его основе создаем объект Range1:
Вставка текста производится двумя методами объекта Range: InsertAfter и InsertBefore. Спецификация методов проста: при использовании этих методов, в качестве параметра указать нужно только текст в апострофах. К примеру, вызов двух операторов
даст нам две строки:
У объекта Range есть много полезных свойств, которые вам неплохо было бы узнать: свойство Font (шрифт), которое имеет свои подсвойства:
Font Например, вставка жирной строки зеленого цвета:
Объект типа Range можно форматировать. Например, следующей строкой содержимое объекта Range выравнивается по центру:
|