原文鏈接:http://hi.baidu.com/seni2007/blog/item/3f9d19015877510b728da574.html
前言 在.NET開發中,不管是web程序還是桌面軟件(尤其是涉及數據庫操作的MIS系統等),常常需操作Excel,如導出數據到Excel,讀取Excel中數據到程序中等。總結起來,其操作不外乎創建、打開、讀寫、保存(后退出/釋放),而其操作方法,則主要有: 通過ADO.NET數據連接方式、通過Excel對象模型“自動化”操作、 使用中間數據格式如文本文件,XML等間接操作Excel、 使用第三方控件(主要用於向Excel傳輸數據)等。 在開始討論之前,先把相關的一些網上資源羅列一下,其中大部分來自MSDN: MSDN: 如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿傳輸數據 http://support.microsoft.com/kb/306023/zh-cn MSDN: 從 .NET 開發人員的角度理解 Excel 對象模型 http://msdn.microsoft.com/zh-cn/library/aa168292(office.11).aspx 如何:使用 COM Interop 創建 Excel 電子表格(C# 編程指南) http://msdn.microsoft.com/zh-cn/library/ms173186(VS.80).aspx Office XP 主互操作程序集入門 http://msdn.microsoft.com/zh-cn/library/aa201322(office.11).aspx 如何通過 Visual C# 使 Excel 自動執行操作以使用數組來填充或獲取某區域中的數據 http://support.microsoft.com/kb/302096/zh-cn 如何在 Microsoft Visual C# .NET 中實現 Microsoft Excel 自動化 http://support.microsoft.com/kb/302084/zh-cn 如何使用 Visual C# .NET 處理 Excel 事件 http://support.microsoft.com/kb/823981/zh-cn C#中創建、打開、讀取、寫入、保存Excel的一般性代碼 http://hi.baidu.com/zhaochenbo/blog/item/f6d70ff7bf32fa2a730eec39.html 如何使用 ASP.NET、ADO.NET 和 Visual C# .NET 查詢和顯示 Excel 數據 http://support.microsoft.com/kb/306572/zh-cn 在 Visual C#.NET 中使用 GetOleDbSchemaTable 從 Excel 如何: 檢索元數據 http://support.microsoft.com/kb/318452/zh-cn 與 XML 一起使用 Visual Basic 和 ASP 生成 Excel 2003 工作簿 http://msdn.microsoft.com/zh-cn/library/aa203722(office.11).aspx 下面開始就各種方法逐步說明其具體的Excel操作過程: 1.通過ADO.NET數據庫連接方式 Microsoft Jet 提供程序用於連接到 Excel 工作簿。在以下連接字符串中,Extended Properties 關鍵字設置 Excel 特定的屬性。“HDR=Yes;”指示第一行中包含列名,而不是數據,“IMEX=1;”通知驅動程序始終將“互混”數據列作為文本讀取。Excel 8.0 針對Excel2000及以上版本,Excel5.0 針對Excel97。 Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""
注意,Extended Properties 所需的雙引號必須還要加雙引號。 using System.Data.OleDb;從上面可以看出,使用ADO.NET可將Excel當作普通數據庫,使用SQL語句來操作。 通過ADO.NET獲取Excel文件的各Sheet名稱,可使用元數據方式: String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +關於使用ADO.NET創建並寫入Excel文件與普通數據庫操作極為類似,參見以下代碼: String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +關於SQL語句中用到的數據類型,請查看System.Data.OleDb.OleDbType 枚舉。 至此,使用ADO.NET打開、創建、讀取、寫入、保存並退出已全部實現,總結起來,與數據庫操作基本無異,很簡單。 這種方式的好處就是通用性強,將Excel中內容看作數據表,讀取操作簡單可靠,適合內容規范的Excel表格的數據讀取。缺點是當Excel結構復雜,如含合並單元等時,無法正確讀取,甚至出現不可預知的異常。 后面再繼續講述其他幾種方式,敬請期待: 2.通過Excel對象模型的“自動化”操作 3. 通過中間數據格式間接操作 4. 使用第三方控件 |