VSTO開發(fā)的目的,是用C#語言操作和控制Office對象??梢允褂靡话愕腤indows窗體應用程序來訪問Office對象,也可以編寫Office外接程序和文檔自定義項。Windows窗體應用程序比較簡單,也是基礎,先對該知識點進行一番總結。
如何創(chuàng)建可以訪問Excel對象的C#窗體應用程序呢?
一般,VS中創(chuàng)建的C#程序是獨立的程序,和office沒有任何關系。想要操作具體的office套件l對象,必須先為項目添加關于Office套件的引用,若無引用,C#代碼中無法操作office的對象成員。
例如,要訪問Excel對象,需要在VS中先添加引用:【項目/添加引用】,在“引用管理器”對話框中,單擊【程序集/擴展】,找到“Microsoft.Office.Interop.Excel”,根據(jù)Excel版本勾選對應的版本,例如Excel 2010對應的版本號為“14.0.0.0”,單擊“確定”。
操作Excel對象時,可能會用到Office對象中的Commandbar、FileDialog等對象,可以進一步為項目添加Office對象的引用:打開“引用管理器”對話框,單擊【COM/類型庫】,勾選“Microsoft Office 14.0 Object Library”。
“確定”后,在項目資源管理器的引用管理下可以看到上述兩項引用。此時,就可以正式在VS的C#項目中操作Excel對象了。
為了方便后續(xù)的調用,可以在類模塊的頂部加入引用時定義簡稱或別名:
- using Excel = Microsoft.Office.Interop.Excel;
- using Office = Microsoft.Office.Core;
有了前面的引用,接下來就可以在C#代碼中獲取正在運行的Excel對象了:
- Excel.Application ExcelApp;
- //獲取正在運行的Excel
- ExcelApp = (Excel.Application)Marshal.GetActiveObject("Excel.
- Application");
通過GetActiveObject函數(shù)來獲取正在運行的Excel應用程序,實例化ExcelApp。
如果電腦上沒有打開的Excel應用程序,可以自行創(chuàng)建Excel對象。創(chuàng)建方式很簡單:
- Excel.Application NewApp = new Excel.Application();
- NewApp.Visible = true;
- NewApp.Caption = "新窗口";
常用方法示例:
- ExcelApp.Undo();//撤銷
- ExcelApp.Workbooks.Close();//關閉所有工作簿
- ExcelApp.Quit();//退出Excel
常用屬性示例:
- ((Excel.Worksheet)ExcelApp.ActiveSheet).Name = "我的工作表";//重命名活動工作表
- Excel.Range rng = (Excel.Range)ExcelApp.Selection;//將選擇對象賦值給rng
- ExcelApp.StatusBar = "我的Excel窗口"; //改變Excel狀態(tài)欄文字
以上介紹了操作Excel對象的方法,類似地還可以操作Excel中的Workbook、Worksheet、Range、Commandbar,還可以操作VBE工程,創(chuàng)建Excel自定義函數(shù)等等。總之,添加Excel和Office引用后,可以利用C#擴展出很多自定義功能。
聯(lián)系客服