Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как прочитать или изменить свойства Word документа

Delphi , Технологии , OLE Automation MSOffice



Автор: http://www.swissdelphicenter.ch

{ Change MS Word properties via OLE }

uses
  ComObj;

procedure TForm1.Button1Click(Sender: TObject);
const
  wdPropertyTitle = $00000001;
  wdPropertySubject = $00000002;
  wdPropertyAuthor = $00000003;
  wdPropertyKeywords = $00000004;
  wdPropertyComments = $00000005;
  wdPropertyTemplate = $00000006;
  wdPropertyLastAuthor = $00000007;
  wdPropertyRevision = $00000008;
  wdPropertyAppName = $00000009;
  wdPropertyTimeLastPrinted = $0000000A;
  wdPropertyTimeCreated = $0000000B;
  wdPropertyTimeLastSaved = $0000000C;
  wdPropertyVBATotalEdit = $0000000D;
  wdPropertyPages = $0000000E;
  wdPropertyWords = $0000000F;
  wdPropertyCharacters = $00000010;
  wdPropertySecurity = $00000011;
  wdPropertyCategory = $00000012;
  wdPropertyFormat = $00000013;
  wdPropertyManager = $00000014;
  wdPropertyCompany = $00000015;
  wdPropertyBytes = $00000016;
  wdPropertyLines = $00000017;
  wdPropertyParas = $00000018;
  wdPropertySlides = $00000019;
  wdPropertyNotes = $0000001A;
  wdPropertyHiddenSlides = $0000001B;
  wdPropertyMMClips = $0000001C;
  wdPropertyHyperlinkBase = $0000001D;
  wdPropertyCharsWSpaces = $0000001E;
const
  AWordDoc = 'C:\Test.doc';
  wdSaveChanges = $FFFFFFFF;
var
  WordApp: OLEVariant;
  SaveChanges: OleVariant;
begin
  try
    WordApp := CreateOleObject('Word.Application');
  except
    // Error....
    Exit;
  end;
  try
    WordApp.Visible := False;
    WordApp.Documents.Open(AWordDoc);
    WordApp.ActiveDocument.BuiltInDocumentProperties[wdPropertyTitle].Value :=
      'Your Title...';
    WordApp.ActiveDocument.BuiltInDocumentProperties[wdPropertySubject].Value :=
      'Your Subject...';
    // ...
    // ...
  finally
    SaveChanges := wdSaveChanges;
    WordApp.Quit(SaveChanges, EmptyParam, EmptyParam);
  end;
end;

Программа на Delphi использует технологию OLE (Object Linking and Embedding) для взаимодействия с документами Microsoft Word. Программа демонстрирует, как читать и изменять свойства документа Word.

Вот шаг за шагом, что код делает:

  1. Определяются константы для различных идентификаторов свойств Word, таких как wdPropertyTitle, wdPropertySubject и т.д.
  2. Создается экземпляр объекта приложения Word с помощью CreateOleObject('Word.Application').
  3. Установка видимости приложения Word в false, чтобы оно не мешало пользовательскому интерфейсу.
  4. Открывается конкретный документ Word (AWordDoc) с помощью WordApp.Documents.Open().
  5. Получаются встроенные свойства документа (например, заголовок, тема, автор и т.д.) с помощью ActiveDocument.BuiltInDocumentProperties[]. Идентификаторы свойств используются для доступа к соответствующим свойствам.
  6. Код устанавливает новые значения для некоторых из этих свойств с помощью свойства Value.

Блок finally используется для обеспечения того, что приложение Word будет правильно закрыто и изменения (если есть) будут сохранены, независимо от возникновения исключения или нет.

Вот предложение:

Вместо жесткой привязки пути документа (AWordDoc) и значений свойств, рассмотрите возможность использования параметров входа или файлов настройки для сделать код более гибким и повторно используемым. Это позволит легко изменить документ, который будет обрабатываться, или модифицировать значения свойств без необходимости пере компилировать код.

Кроме того, может быть полезно добавить обработку ошибок для случаев, когда приложение Word не может быть создано или документ не может быть открыт. Текущая реализация просто выходит из программы, если возникла ошибка, что может не быть желаемым в производственной коде.

Наконец, рассмотрите возможность использования более описательных имен переменных вместо WordApp и SaveChanges. Это сделает код более читаемым и понятным для других (и для себя в будущем).

В статье описывается как изменять свойства документа Microsoft Word с помощью языка программирования Delphi и использованием ActiveX-компоненты OLE.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: OLE Automation MSOffice ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 02:58:11/0.0053520202636719/1