您好,登錄后才能下訂單哦!
這篇文章主要介紹了C#.NET如何綁定Office,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
C#.NET綁定Office晚期綁定
與早期綁定不同,C#.NET綁定Office晚期綁定要等到運行時才會將屬性和方法調用綁定到它們的對象。為此,目標對象必須實現一個特殊的 COM 接口:IDispatch。利用 IDispatch::GetIDsOfNames 方法,Visual C# 可以詢問對象支持哪些方法和屬性,然后,IDispatch::Invoke 方法允許 Visual C# 調用這些方法和屬性。這種晚期綁定的優(yōu)點是:它消除了早期綁定所固有的某些版本依賴性。然而,它也有以下缺點:省略了對自動化代碼完整性的編譯時檢查,也不提供“智能感知”功能(該功能可提供有助于正確調用方法和屬性的提示)。
要在 Visual C# 中使用C#.NET綁定Office晚期綁定,請使用 System.Type.InvokeMember 方法。此方法調用 IDispatch::GetIDsOfNames 和 IDispatch::Invoke 來綁定到自動化服務器的方法和屬性?!?/p>
創(chuàng)建使用晚期綁定的自動化客戶端
啟動 Microsoft Visual Studio .NET。在文件菜單上,單擊新建,然后單擊項目。從 Visual C# 項目類型中選擇 Windows 應用程序。默認情況下會創(chuàng)建 Form1。
在視圖菜單上,選擇工具箱以顯示工具箱,然后向 Form1 添加一個按鈕。
雙擊 Button1。將出現該窗體的代碼窗口。
在代碼窗口中,將以下代碼:
private void button1_Click(object sender, System.EventArgs e) { } 替換為:private void button1_Click(object sender, System.EventArgs e) { object objApp_Late; object objBook_Late; object objBooks_Late; object objSheets_Late; object objSheet_Late; object objRange_Late; object[] Parameters; try { // Instantiate Excel. objApp_Late = (object)new Excel.Application(); //Get the workbooks collection. objBooks_Late = objApp_Late.GetType().InvokeMember( "Workbooks", BindingFlags.GetProperty, null, objApp_Late, null ); //Add a new workbook. objBook_Late = objBooks_Late.GetType().InvokeMember( "Add", BindingFlags.InvokeMethod, null, objBooks_Late, null ); //Get the worksheets collection. objSheets_Late = objBook_Late.GetType().InvokeMember( "Worksheets", BindingFlags.GetProperty, null, objBook_Late, null ); //Get the first worksheet. Parameters = new Object[1]; Parameters[0] = 1; objSheet_Late = objSheets_Late.GetType().InvokeMember( "Item", BindingFlags.GetProperty, null, objSheets_Late, Parameters ); //Get a range object that contains cell A1. Parameters = new Object[2]; Parameters[0] = "A1"; Parameters[1] = Missing.Value; objRange_Late = objSheet_Late.GetType().InvokeMember( "Range", BindingFlags.GetProperty, null, objSheet_Late, Parameters ); //Write "Hello, World!" in cell A1. Parameters = new Object[1]; Parameters[0] = "Hello, World!"; objRange_Late.GetType().InvokeMember( "Value", BindingFlags.SetProperty, null, objRange_Late, Parameters ); //Return control of Excel to the user. Parameters = new Object[1]; Parameters[0] = true; objApp_Late.GetType().InvokeMember( "Visible", BindingFlags.SetProperty, null, objApp_Late, Parameters ); objApp_Late.GetType().InvokeMember( "UserControl", BindingFlags.SetProperty, null, objApp_Late, Parameters ); } catch( Exception theException ) { String errorMessage; errorMessage = "Error: "; errorMessage = String.Concat( errorMessage, theException.Message ); errorMessage = String.Concat( errorMessage, " Line: " ); errorMessage = String.Concat( errorMessage, theException.Source ); MessageBox.Show( errorMessage, "Error" ); } }
感謝你能夠認真閱讀完這篇文章,希望小編分享的“C#.NET如何綁定Office”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。