Текстовий редактор Word являє собою сервер автоматизацій (COM-сервер), який може отримувати і обробляти запити від зовнішніх програм, в тому числі і написаних в Delphi.
Доступ до додатку Word здійснюється, як правило, за допомогою основних двох об'єктів: Word.Application і Word.Document. Вони ж забезпечують доступ і до інших об'єктів Word: тексту, таблицям, кнопкам, меню.
Найлегший, але одночасно і найповільніший по продуктивності спосіб роботи з COM-сервером Word базується на використанні змінних Variant.
Для використання методу Variant, потрібно вказати в розділі uses посилання на модуль ComObj.
Робота з документом Word в Delphi. Відео
Обробка документів Word в Delphi. Примеры
Як уже згадувалося, для взаємодії з COM-сервером Word нам в першу чергу потрібно підключити модуль ComObj. Тому не забудьте в uses дописати ComObj.
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ComObj; // підключаємо модуль ComObj
Також, потрібно оголосити глобальну змінну типу OleVariant.
var
Form1: TForm1;
Word:OleVariant; // оголошуємо змінну для доступу до об'єкта MS Word
Як створити документ Word
procedure TForm1.Button1Click(Sender: TObject);
begin
Word:=CreateOleObject('Word.Application'); // створюємо додаток Word
Word.Visible:=True; // робимо додаток видимим
Word.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam); // створюємо документ Word
end;
Як відкрити документ Word
procedure TForm1.Button1Click(Sender: TObject);
begin
Word:=CreateOleObject('Word.Application'); // створюємо додаток Word
Word.Documents.Open('D:\\test.docx'); // відкриваємо файл
Word.Visible:=True; // робимо додаток видимим
Word:=Unassigned;
end;
Як записати текст в документ Word
procedure TForm1.Button1Click(Sender: TObject);
var
s:String; // оголошуємо змінну в якій буде зберігатися потрібний нам текст
begin
s:='Цей текст ми записуємо в документ Word';
Word:=CreateOleObject('Word.Application'); // створюємо додаток Word
Word.Visible:=True; // робимо додаток видимим
Word.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam); // створюємо документ Word
Word.ActiveDocument.Range.InsertAfter(s); // записуємо вміст змінної s в документ Word
end;
Як закрити документ Word
procedure TForm1.Button2Click(Sender: TObject);
begin
Word.Quit; // вихід з Word
Word:=UnAssigned; // очищаємо пам'ять від об'єкта Application
end;
Як закрити Word зі збереженням змін
procedure TForm1.Button2Click(Sender: TObject);
begin
Word.ActiveDocument.Close(True);
end;