程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 在Delphi中使用CreateOleObject方法對WORD文件進行操作

在Delphi中使用CreateOleObject方法對WORD文件進行操作

編輯:Delphi

  使用CreateOleObject方法對Word文檔操作具有先天所具備的優勢,與Delphi所提供的那些控件方式的訪問相比,CreateOleObject方法距離Word核心的操作“更近”,因為它直接使用Office所提供的VBA語言對Word文檔的操作進行編程。

  以下是我在本機上所做的實驗,機器軟件配置如下:

  Windows XP+Delphi7.0+Office 2003

  這個程序很簡單,在頁面上放置了一個edit和一個button,每單擊一次按鈕,就會自動把edit中的內容添加在後台中的Word文檔中,程序關閉時文件自動保存在當前程序的主目錄中。

  unit main;

  interface

  //如果要使用CreateOleObject的辦法對Word文檔進行操作,應該在uses
  //語句中加入Comobj聲明和WordXP聲明
  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Comobj, WordXP, Dialogs, StdCtrls;

  type
    TForm1 = class(TForm)
      Button1: TButton;
      Edit1: TEdit;
      procedure Button1Click(Sender: TObject);
      procedure FormCreate(Sender: TObject);
      procedure FormClose(Sender: TObject; var Action: TCloseAction);
  //    procedure Button2Click(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end;

  var
    Form1: TForm1;
    //把這兩個變量聲明為全局變量
    FWord: Variant;
    FDoc: Variant;

  implementation

  {$R *.dfm}

  procedure TForm1.Button1Click(Sender: TObject);
  begin
  FWord.Selection.TypeParagraph;
  FWord.Selection.TypeText(Text := form1.Edit1.Text);
  end;

  
  procedure TForm1.FormCreate(Sender: TObject);
  begin
  //首先創建對象,如果出現異常就作出提示
  try
  FWord := CreateOleObject('Word.Application');
  //Word程序的執行是否可見,值為False時程序在後台執行
  FWord.Visible := False;
  except
  ShowMessage('創建Word對象失敗!');
  Exit;
  end;

  //先在打開的Word中創建一個新的頁面,然後在其中鍵入"Hello,"+回車+"World!"
  try
  FDoc := FWord.Documents.Add;
  FWord.Selection.TypeText(Text := 'Hello,');
  FWord.Selection.TypeParagraph;
  FWord.Selection.TypeText(Text := 'World! ');

  except
  on e: Exception do
  ShowMessage(e.Message);
  end;
  end;

  //在程序關閉時把文件內容保存到當前目錄中,並以test.doc命名
  //同時關閉Word程序
  procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  begin
  FDoc.SaveAs(ExtractFilePath(application.ExeName) +'test.doc');
  FWord.Quit;
  FWord := Unassigned;
  end;

  end.

  此外,對Office其他文件的操作都比較類似,不在贅述。通過對Word文件中更復雜的VBA宏的引用,這個方法還可以完成更復雜的文檔操作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved