Excel擴展.NET應用

Excel擴展.NET應用
Tony Patton
10/1/2006
URL: http://www.zdnet.com.cn/developer/code/story/0,3800066897,39435237,00.htm

可以用Excel輕鬆增加.NET應用軟件的功能。下面我們告訴你如何做:

 

在最近的專欄中,我們探討過整合微軟Word與.NET框架的過程。由於微軟Office辦公套件功能強大,有大量整合的可能性。在本文中,我們討論一下整合微軟Excel的情形。

 

堅持應用VBA
我們必須指出,微軟Office辦公產品套件應用了Visual Basic for Applications (VBA),因此瞭解一些與組件對象模型(Component Object Model --COM)對象有關的知識會有幫助。但是,.NET COM互操作特性使在.NET應用軟件中應用COM對象十分容易。讓我們先來全面瞭解一下Excel對象模型。

 

Excel對象模型
微軟Excel確實提供在其環境內的數百個程序對象。這一整套對象已超出了本文的討論範圍。因此我們只能初步討論幾個對象。下面是四個常見的對象:

 

* 應用:代表整個Excel應用程序。它揭示大量關於運行程序、應用該實例的選項以及在實例中開放的當前用戶對象的信息。
* 工作薄:一個單獨的Excel工作薄可包含一個或多個工作表。
* 工作表:一個單獨的Excel工作表。工作表對象的大多數屬性、方法及事件與應用和/或工作薄類提供的項目相同或類似。
* 範圍:工作表單元格的範圍。範圍對象代表一個單元格,一行或一列。單元格的選擇包含一批或多批單元格的選擇,或者不同工作表中一組單元格的選擇。

 

對象模型從頂部的應用類開始,因爲它是訪問Excel的起點。在你開始通過.NET COM互操作應用Excel對象時,你得使它在項目中可用。

 

應用微軟Excel
你的.NET項目必須可應用微軟Excel對象庫。如果應用Visual Studio .NET,可以通過選擇Project-Add Reference菜單爲項目增加參考。通過增加參考(Add Reference)窗口中的COM標籤可訪問系統安裝的COM庫。Excel列爲Microsoft. Excel。根據所安裝的Excel版本不同,這一名稱可能有所不同。我的系統上安裝的是Excel 2003,所以COM庫中列出的是Microsoft. Excel 11.0對象庫(Object Library)。另外,還需要兩個命名空間。

 

* Microsoft.Office.Interop.Excel:允許你通過.NET互操作應用Excel對象。
* System.Runtime.InteropServices:包括COMException類,允許你正確處理與COM相關的異常。 列表A中的代碼段
從當地文件系統中加載並打開一個Excel文件(列表A中包含對應的VB.NET代碼)。這裏是關於代碼的幾點提示:
* 工作薄對象的開放方法(通過應用對象訪問)允許你訪問現有的Excel文件。注意:作爲一個C#開發器,Type.Missing值是必需的,因爲Excel VBA對象方法接受大量的可選參數。Type.Missing值允許你不給參數賦值,但可對它進行重組。VB.NET支持這一方法的可選參數。
* 應用對象設置爲可見;工作簿對象被激活,使其顯示在屏幕上。
* 捕捉(catch)塊處理與COM相關的特殊異常及常見異常。

 

前面的代碼並不包含一個完整的應用程序,但它爲我們呈現如何在C#和VB.NET中應用Excel。接下來我們通過操作工作表中的數據做進一步討論。

 

列表C中的VB.NET代碼建立一個新的Excel表格,插入號碼,並執行計算。只有一個按鈕的代碼包含在內。(列表D包含對應的C#代碼。)下面是對代碼的幾點提示:

 

* 一個新的Excel工作簿通過應用對象的工作簿屬性的添加方法建立。這樣建立一個帶空白工作表的工作簿。
* 當前工作表通過工作表對象的激活表格(ActiveSheet)屬性建立。
* 範圍對象用於單個的單元格。單元格通過在表格中的位置來訪問。例如,表標題(Techrepublic.com)插入到第一個單元格(A1=A列1行)。範圍對象的值屬性用於填充單元格。
* 範圍對象的方程屬性允許你爲一個單元格或一組單元格指定一個方程。在此例中,顯示整個第二列的值。
* 範圍對象的計算方法處理方程。

 

你可能注意到C#與VB.NET版本之間存在的一些不同。在C#中,工作表類的get_Range方法用於爲範圍對象示例。另外,get_Range方法有第二個可選參數,所以應用Type.Missing值。最後,激活表格(ActiveSheet)對象必須在工作表類中才能應用。在應用C#運行VBA COM對象時,你得對這些不同有心理準備。

 

應用環境
一些讀者質疑應用Excel時用戶系統存在的弱點。但是,本文中的例子是爲基於Windows Form的應用程序而建立的。設想的應用環境爲內部應用程序,所以當它向外開放時,並不存在很大的安全問題。通過ASP.NET應用Excel也會有自身的問題,這也超出本文討論的範圍。

 

擴張的功能
整合Excel與.NET應用程序允許你輕鬆快捷地爲一個應用程序提供強大的功能。Excel的計算與展示特色提供大量的選項。

 

責任編輯:張璡

 

查看本文的國際來源  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章