我們常常會與Excel文件打交到。那麼今天就講講在C#程序中操作Excel的問題。這裡主要是導入和導出。 在頁面中常常會遇到點擊按鈕實現GridView等控件的展示信息的下載,那麼在程序中是如何實現數據下載的呢?其實簡單的辦法就是將這組規整的數據以Excel的方式保存到本地文件系統。我姑且稱這種方式為"程序的方式"吧。 下面看具體代碼實現: View Code 當我們把這個方法在Button點擊按鈕下調用的時候,我們運行頁面會驚奇的發現,如下場景: 看到這裡你是不是”驚呆了"也。呵呵,明明我的控件Gridview是放在了具有runat=server的form表單中的呀?其實你只需要重寫VerifyRenderingInServerForm事件。代碼如下: View Code 這裡介紹一種與到類似的解決辦法,無需重寫上面的事件,方法如下: View Code 這兩個種方式(當然類似的方法很多)都是通過寫入HTTP 響應輸出流的方式寫入到本地文件系統。 我們知道Excel本來就是小型的數據庫模型,我姑且稱之為"Oledb"的方式,因此我們可以考慮通過數據訪問的形式來實現上面的效果。首先要引入Microsoft.Office.Interop.Excel; View Code 以上是Excl的導出。 再來看Excel的導入 View Code 這裡涉及到連接字符串問題,請看: string strConn = @"Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filePath + ";Extended Properties='Excel 8.0; HDR=Yes; IMEX=1'"; //此連接只能操作Excel2007之前(.xls)文件 string strCon = @"Provider=Microsoft.Ace.OleDb.12.0;" + "data source=" + fileName + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'" 對已不同的office版本,連接字符串也不同。 主意,當我們使用程序導出,然後通過Excel "Oledb"的方式導入的時候,會出現如下問題。且看: 這是程序導出時導致的非標准的excel文件的緣故,這個是程序導出的弊端。需要加以適當的處理。在導出的時候,這裡由於時間原因,先介紹到這兒。 下面是我的ExcelOperation類: View Code 哈哈,時間有點晚了,菜鳥的我要睡覺了。准備明天悲哀的生活了。2012.10.16晚。