使用 C++ 讀寫 Excel

發表於2016-12-26

1.匯入Excel型別庫

使用Visual C++的擴充套件指令#import匯入Excel型別庫:

#import指令會從指定的可執行檔案,動態連結庫等COM元件中匯出型別庫(type lib),在Debug和Release臨時目錄中生成對應的型別庫標頭檔案(type lib header file),以供C++程式使用。如以上三條指令在編譯後會生成excel.tlh, mso.lh和vbetext.olb三個標頭檔案,可以在Debug和Release目錄中找到。

2.訪問Excel暴露的COM物件

下面是一段比較完整的訪問Excel的例項程式碼。首先用生成的資料填充單元格,然後用這些單元格的資料生成了一個圖表(Chart):

在這段程式碼中,Excel::_ApplicationPtr , Excel::_WorkbookPtr 和 Excel::_WorksheetPtr 等均是Visual C++ 編譯器根據#import指令自動生成的智慧指標,實際上就是C++模板類_com_ptr_t的typedef,其定義可在excel.tlh等型別庫標頭檔案中找到。

另外,由於#import指令中沒有指定raw_interface_only修飾符,Visual C++對Excel的COM介面進行了適當的封裝,以簡化COM介面屬性和方法的呼叫,並且將HRESULT返回值都轉換成了C++異常,因此,上面的這段程式碼不需要每一步都堅持HRESULT,而是改為捕獲C++異常。

相關文章