Delphi і Word. Створення, редагування, відкриття документа Word в Delphi

Текстовий редактор 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;

АВТОРИЗАЦІЯ