C#.NET綁定Office淺析
早期C#.NET綁定Office
采用早期綁定時,Visual C# 使用有關所涉及C#.NET綁定Office應用程序的可用類型信息直接綁定到它需要使用的方法或屬性。編譯器可以執行類型和語法檢查,以確保傳遞到方法或屬性的參數的數量和類型正確無誤,并且返回的值是所期望的類型。由于早期綁定在運行時調用屬性或方法所需的工作量較小,因此有時速度較快。然而,雖然早期綁定可能速度較快,但與晚期綁定之間的性能差異通常不大。
早期綁定確實有這樣一個小缺點:可能會帶來版本兼容性問題。例如,假定諸如 Microsoft Excel 2002 之類的自動化服務器引入了 Excel 2000 中沒有的新方法或屬性,或者更改了現有的屬性或方法。這些更改可能會改變對象的二進制布局,并導致使用 Excel 2002 類型信息實現 Excel 2000 自動化的 Visual C# 應用程序出現問題。為了避免早期綁定發生這樣的問題,通常建議您在開發和測試自動化客戶端時,使用您希望支持的最低版本的 Office 應用程序的類型信息。
下列步驟說明了如何創建使用早期綁定的自動化客戶端。請注意,正如這些步驟所說明的那樣,早期綁定要求您引用自動化客戶端的類型庫。
創建使用早期綁定的自動化客戶端
啟動 Microsoft Visual Studio .NET。在文件菜單上,單擊新建,然后單擊項目。從 Visual C# 項目類型中選擇 Windows 應用程序。默認情況下會創建 Form1。
添加對 Microsoft Excel 對象庫的引用。為此,請按照下列步驟操作:
◆在項目菜單上,單擊添加引用。
◆在 COM 選項卡上,找到 Microsoft Excel 對象庫并單擊選擇。
注意:Office 2003 包含主 Interop 程序集 (PIA)。Office XP 不包含 PIA,但您可以下載 PIA。 有關C#.NET綁定Office的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
328912 INFO:Microsoft Office XP PIA 可供下載
◆在添加引用對話框中單擊確定以接受您的選擇。如果系統提示您為選定的庫生成包裝,請單擊是。
◆在視圖菜單上,選擇工具箱以顯示工具箱,然后向 Form1 添加一個按鈕。
◆雙擊 Button1。將出現該窗體的代碼窗口。
◆在代碼窗口中,將以下代碼
- privatevoidbutton1_Click(objectsender,System.EventArgse){
- }
- 替換為:privatevoidbutton1_Click(objectsender,System.EventArgse)
- {
- Excel.ApplicationobjApp;
- Excel._WorkbookobjBook;
- Excel.WorkbooksobjBooks;
- Excel.SheetsobjSheets;
- Excel._WorksheetobjSheet;
- Excel.Rangerange;
- try
- {
- //InstantiateExcelandstartanewworkbook.
- objApp=newExcel.Application();
- objBooks=objApp.Workbooks;
- objBook=objBooks.Add(Missing.Value);
- objSheets=objBook.Worksheets;
- objSheet=(Excel._Worksheet)objSheets.get_Item(1);
- range=objSheet.get_Range("A1",Missing.Value);
- range.set_Value(Missing.Value,"Hello,World!");
- //ReturncontrolofExceltotheuser.
- objApp.Visible=true;
- objApp.UserControl=true;
- }
- catch(ExceptiontheException)
- {
- StringerrorMessage;
- errorMessage="Error:";
- errorMessage=String.Concat(errorMessage,theException.Message);
- errorMessage=String.Concat(errorMessage,"Line:");
- errorMessage=String.Concat(errorMessage,theException.Source);
- MessageBox.Show(errorMessage,"Error");
- }
- }
【編輯推薦】