Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Работа с приложением Microsoft Word

Читайте также:
  1. A. Работа была выполнена к 6 часам. \ Жұмыс сағат 6-ға таман орындалды.
  2. Bill Gates and Microsoft
  3. FSA - Серийный или доработанный легковой автомобиль отечественного или иностранного производства без ограничения. Объем двигателя: от 2000 до 3000 куб.см. включительно.
  4. FSB – Серийный или доработанный серийный легковой автомобиль отечественного или иностранного производства без ограничения. Объём двигателя: от 2300 до 3500 куб.см. включительно.
  5. I РАБОТА И ОТРЕЧЕНИЕ.
  6. II. Самостоятельная работа (повторение) по вопросам темы № 11 «Множественность преступлений».
  7. Microsoft Dynamics CRM Правильно

 

Если на главную форму выкладываем компоненту с закладки Servers, которая называется, например WordApplication, то при запуске приложения запустится сервер автоматизации Microsoft Word, этот факт можно обнаружить, запустив на выполнение Task Manager и выбрав закладку Processes. Среди прочих процессов мы обнаруживаем WINWORD.EXE. При этом выполняются следующие действия:

§ При создании формы, в системном реестре, по идентификатору CLSID был найден сервер Word.Application

§ Запущено на выполнение приложение, находящееся по адресу в реестре (ProgID)

§ Сервер предоставил нашему приложению, которое и является контроллером автоматизации интерфейс, через который мы и получим доступ к объекту Application.

Практически всегда при работе с сервером Word вам приходится иметь дело сосвойством Documents. Это свойство представляет собой собрание всех документов, открытых в Word в данный момент. Каждый документ представлен в этом собрании как объект Document, имеющий в свою очередь собственные свойства и методы. Общее число открытых документов определяется свойством Count собрания документов Documents.

При вызове из Delphi любого метода сервера СОМ аргументы (кроме аргументов типа Text) передаются только как объекты типа OleVariant. Если какие-то аргументы не являются обязательными, то все равно они должны фигурировать в вызове метода. Только вместо их значений может быть указана EmptyParam —переменная типа OleVariant, используемая вместо необязательных параметров. Эта переменная объявлена в модулях System и OleCtrls. Таким образом, если вы хотите создать новый документ на основе обычного шаблона, вы можете записать оператор:

WordApplicationl.Documents.Add(EmptyParam,EmptyParam, EmptyParam, EmptyParam);

Важным свойством сервера Word является свойство Selection, являющееся

ссылкой на объект Selection — выделенный фрагмент текста в активном документе или, если нет выделения, то просто текущая позиция курсора в активном документе. Этот объект имеет методы InsertBefore и Insert After, аргументом в которые передается текст, вставляемый в активный документ соответственно до или после объекта Selection.

Сохранение активного документа в файле с заданным именем можно осуществить методом SaveAs класса Document, передавая в него как аргумент типа OleVariant имя файла с путем к нему. Если путь отсутствует, то файл сохраняется в текущем каталоге.

Пример:

procedure TForm1.Button3Click(Sender: TObject);

var a:OleVariant;

fileName:OleVariant;

begin

a:=true;

WordApplication1.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam);

 

WordApplication1.Selection.InsertAfter(''+#13);

WordApplication1.Selection.InsertAfter('hello korolev');

fileName:='c:\my1.doc';

WordApplication1.ActiveDocument.SaveAs(fileName, EmptyParam, EmptyParam,

EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam

, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam

, EmptyParam);

 

WordApplication1.Visible:=false;

end;

Пример замены в документе Word:

Пусть у нас имеется документ Microsoft Word:

 

1. Порядковый номер <Шифр>

 

2. От гр. <Фамилия> <Имя> <Отчество>

Фамилия имя отчество

 

Требуется открыть Microsoft Word, подставить значение Шифр и Фамилия, Имя, Отчество. Для работы с этим документом Microsoft Word необходимо:

 

1. Создать на форме компонент WordApplication

WordApplication1: TWordApplication;

 

2. Открыть документ

Fname:=GetCurrentDir+'/Blank.doc';

WordApplication1.Documents.Open(Fname, EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam,

EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

3. Соединиться с Сервером Word и подключиться к документу.

 

WordApplication1.Connect;

 

4. Переходим в начало документа

start:=wdStory;

WordApplication1.Selection.HomeKey(start, EmptyParam);

5. Поиск и замена в документе фрагмент '<Фамилия>' заменяем на ‘Королев’

 

doc:='<Фамилия>';

text:='Петров';

FOne:=wdFindStop;

ROne:=wdReplaceOne;

WordApplication1.Selection.Find.Execute(doc, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, FOne, EmptyParam, text, ROne, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

 

6. Сделать видимым документ, с помощью свойства WordApplication - Visible:

 

WordApplication1.Visible:=true;

 

Полный пример:

unit Unit2;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, OleServer, WordXP;

 

type

TForm2 = class(TForm)

WordApplication1: TWordApplication;

Button1: TButton;

procedure Button1Click(Sender: TObject);

Procedure zamena(doc,baz:oleVariant);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form2: TForm2;

 

implementation

 

{$R *.dfm}

 

 

procedure TForm2.Button1Click(Sender: TObject);

var

FOne,ROne,start:OleVariant;

Fname:OleVariant;

 

begin

Fname:='d:\Blank.doc';

WordApplication1.Documents.Open(Fname, EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam,

EmptyParam, EmptyParam, EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

 

WordApplication1.Connect;

zamena('<Фамилия>','Королев');

 

WordApplication1.Visible:=true;

end;

 

Procedure TForm2.zamena(doc,baz:oleVariant);

Var FOne,ROne,start:OleVariant;

begin

start:=wdStory;

WordApplication1.Selection.HomeKey(start, EmptyParam);

FOne:=wdFindStop;

ROne:=wdReplaceOne;

WordApplication1.Selection.Find.Execute(doc, EmptyParam, EmptyParam, EmptyParam,

EmptyParam, EmptyParam, EmptyParam, FOne, EmptyParam,

baz, ROne, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

end;

end.

 


Дата добавления: 2015-11-15; просмотров: 37 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Технология COM| Работа с приложением Microsoft Excel

mybiblioteka.su - 2015-2024 год. (0.01 сек.)