首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 透過 OLE 自動化操作 Word:插入文字、設定字型、換頁

     編輯:Delphi

應用場景

程式需自動產生 Word 文件、填入報表資料、套用格式,透過 OLE 自動化 (COM) 直接控制 Word.Application 物件模型。

核心程式碼

uses ComObj, Variants;

procedure WriteToWord(const FileName, InsertText: string);
var
  WordApp: Variant;
  Doc: Variant;
begin
  // 1. 建立/連接 Word 應用程式
  WordApp := CreateOleObject('Word.Application');
  try
    // 2. 開啟現有文件 (ReadOnly:=False 可編輯)
    Doc := WordApp.Documents.Open(FileName, False, False);
    // 3. 可選:顯示 Word 視窗
    WordApp.Visible := True;

    // 4. 移動游標至文件開頭
    Doc.Range(0, 0).Select;

    // 5. 插入文字
    WordApp.Selection.TypeText(InsertText);
    // 6. 插入段落標記 (換行)
    WordApp.Selection.TypeParagraph;

    // 7. 設定字型
    WordApp.Selection.Font.Name := 'Arial';
    WordApp.Selection.Font.Size := 24;
    WordApp.Selection.Font.Bold := True;

    // 8. 儲存並關閉 (視需求)
    // Doc.Save;
    // Doc.Close(False);
    // WordApp.Quit;
  except
    on E: Exception do
      ShowMessage('Word 自動化失敗:' + E.Message);
  end;
end;

關鍵物件模型說明

  • WordApp.Documents.Open 回傳 Document 物件。
  • Doc.Range(Start, End) 取得範圍物件;Selection 代表目前游標/選取區域。
  • Selection.TypeText、TypeParagraph、Font 等方法/屬性即為 Word VBA 對應功能。
  • 使用 Variant 進行晚期繫結,無需匯入型別庫,但失去編譯期檢查與 Code Insight。

早期繫結版本 (效能較佳、支援智慧提示)

  1. 元件面板 → Import Component → Import Type Library → 選擇 Microsoft Word XX.0 Object Library。
  2. 生成的單元加入 uses,即可使用 _Application、_Document、Range 等介面。

常見問題排查

  • 「類別未註冊」:目標機未安裝 Word,或版本不符。
  • 存取違規/權限不足:DCOM 設定 (dcomcnfg) 中需給予「啟動及啟用權限」。
  • 中文亂碼:確保原始碼檔案編碼為 UTF-8,且傳入 WideString 給 COM。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved