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

MFC 結合類型庫實現 Office 自動化完整教學

     編輯:關於VC++

概述

本文詳細示範如何使用 MFC 專案,透過匯入 Microsoft Office 應用程式(以 Excel 為例)的類型庫,建立自動化用戶端,控制 Excel 啟動、顯示與基本操作。

建立 MFC 自動化專案步驟

  1. **建立專案**:Visual Studio 中新建 MFC AppWizard (exe),專案名 AutoProject。
  2. **選擇類型**:精靈第 1 步選 Dialog Based(對話式),直接完成。
  3. **調整對話框**:資源視圖開啟 IDD_AUTOPROJECT_DIALOG,刪除靜態文字與 Cancel 按鈕,將 OK 按鈕 ID 改為 IDRUN,標題改為 Run。
  4. **新增按鈕處理常式**:ClassWizard (Ctrl+W) → Message Maps → 物件 IDRUN → 訊息 BN_CLICKED → Add Function 命名 OnRun。
  5. **匯入類型庫**:ClassWizard → Automation → Add Class → From a type library → 瀏覽選擇 Office 類型庫:
    Excel 97: Excel8.olb (Office\Office)
    Excel 2000: Excel9.olb
    Excel 2002/2003: 直接指向 Excel.exe (Office10/Office11)
    全選類別確定,產生封裝類別(如 Excel8.h/.cpp)。
  6. **初始化 COM**:在 CAutoProjectApp::InitInstance() 最前加入:
    if (!AfxOleInit()) {
        AfxMessageBox(_T("無法初始化 COM 程式庫"));
        return FALSE;
    }
  7. **包含標頭**:AutoProject.cpp 頂部 #include <afxdisp.h>;AutoProjectDlg.cpp 在 stdafx.h 後 #include "excel8.h"(版本對應修改)。
  8. **實作自動化碼**:
    void CAutoProjectDlg::OnRun()
    {
        _Application app; // Excel Application 物件
        if (!app.CreateDispatch(_T("Excel.Application"))) {
            AfxMessageBox(_T("無法啟動 Excel"));
            return;
        }
        app.SetVisible(TRUE);
        AfxMessageBox(_T("Excel 正在執行!"));
        // app 离开作用域時,Excel 會自動退出
    }
  9. **編譯執行**:點擊 Run 按鈕即可啟動 Excel。

關鍵技術細節

類型庫版本對照表

應用程式類型庫檔案預設路徑
Excel 97Excel8.olbOffice\Office
Excel 2000Excel9.olbOffice\Office
Excel 2002/2003Excel.exeOffice10/Office11
Word 97Msword8.olbOffice\Office
Word 2000Msword9.olbOffice\Office
Word 2002/2003MSWord.olb / WinWord.exeOffice10/Office11
PowerPoint 97Msppt8.olbOffice\Office
Access 2000Msacc9.olbOffice\Office

完整對照表見原文,含 DAO、Graph、Binder、Outlook、Office 共用庫 (MSO.dll) 等。

封裝類別使用提示

  • ClassView 中雙擊類別可查看 Excel8.cpp 定義。
  • 修改函式定義時**務必同步修改 .h 與 .cpp**;注意同名函式(如 GetApplication)可能存在於多個類別中,需確認正確者。
  • 封裝類別繼承自 COleDispatchDriver,自動管理 IDispatch 參考計數。

擴充應用

掌握此流程後,即可套用至 Word、PowerPoint、Access 等所有支援 COM 自動化的 Office 組件。只需更換類型庫、調整 ProgID(如 Word.Application)、呼叫對應物件模型方法即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved