這篇文章主要介紹了C#.NET如何綁定Office,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)專注于掇刀網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供掇刀營銷型網(wǎng)站建設(shè),掇刀網(wǎng)站制作、掇刀網(wǎng)頁設(shè)計(jì)、掇刀網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造掇刀網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供掇刀網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
C#.NET綁定Office晚期綁定
與早期綁定不同,C#.NET綁定Office晚期綁定要等到運(yùn)行時(shí)才會(huì)將屬性和方法調(diào)用綁定到它們的對(duì)象。為此,目標(biāo)對(duì)象必須實(shí)現(xiàn)一個(gè)特殊的 COM 接口:IDispatch。利用 IDispatch::GetIDsOfNames 方法,Visual C# 可以詢問對(duì)象支持哪些方法和屬性,然后,IDispatch::Invoke 方法允許 Visual C# 調(diào)用這些方法和屬性。這種晚期綁定的優(yōu)點(diǎn)是:它消除了早期綁定所固有的某些版本依賴性。然而,它也有以下缺點(diǎn):省略了對(duì)自動(dòng)化代碼完整性的編譯時(shí)檢查,也不提供“智能感知”功能(該功能可提供有助于正確調(diào)用方法和屬性的提示)。
要在 Visual C# 中使用C#.NET綁定Office晚期綁定,請(qǐng)使用 System.Type.InvokeMember 方法。此方法調(diào)用 IDispatch::GetIDsOfNames 和 IDispatch::Invoke 來綁定到自動(dòng)化服務(wù)器的方法和屬性。
創(chuàng)建使用晚期綁定的自動(dòng)化客戶端
啟動(dòng) Microsoft Visual Studio .NET。在文件菜單上,單擊新建,然后單擊項(xiàng)目。從 Visual C# 項(xiàng)目類型中選擇 Windows 應(yīng)用程序。默認(rèn)情況下會(huì)創(chuàng)建 Form1。
在視圖菜單上,選擇工具箱以顯示工具箱,然后向 Form1 添加一個(gè)按鈕。
雙擊 Button1。將出現(xiàn)該窗體的代碼窗口。
在代碼窗口中,將以下代碼:
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" ); } }感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C#.NET如何綁定Office”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
文章名稱:C#.NET如何綁定Office
標(biāo)題鏈接:http://www.chinadenli.net/article2/piigoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站制作、做網(wǎng)站、用戶體驗(yàn)、建站公司、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)