用戶控件上的GridView如何導入、導出到Excel表

 

用戶控件上的GridView如何導入、導出到Excel表

(1) StringWriter 不能用,因爲沒有引入命名空間System.IO

(2)Encoding不能用,因爲沒有引入命名空間System.Text

(3)在用戶控件上使用的GridView不能重寫VerifyRenderingInServerForm函數。

 

一、GridView數據導出到Excel文件中

 1     protected   void  Button1_Click( object  sender, EventArgs e)ITPUB個人空間x(U~7{0E
 2      {
?h&B3}(h4ed0
 3          Export( " application/ms-excel " " 自命名文件名.xls " );
u+Z/?oX!a0
 4      }
CB+L|E0vg0
 5  ITPUB個人空間5bIW0I!u!h3/b'j
 6       private   void  Export( string  FileType,  string  FileName)
7gjN~2H}"Yc*K!/0
 7      {
a^/ije@n? Js#T0
 8          Response.Charset  =   " GB2312 " ;
x(Z*h:y*lp-YY0
 9          Response.ContentEncoding  =  System.Text.Encoding.UTF7;ITPUB個人空間 J ~X4Kb(O}-j
10          Response.AppendHeader( " Content-Disposition " " attachment;filename= "   +  HttpUtility.UrlEncode    (FileName, Encoding.UTF8).ToString());
%A ]zhE3zRtM0
11          Response.ContentType  =  FileType;
N-rk"_6B4m0
12           this .EnableViewState  =   false ;
*e z1@K;{.R0
13          StringWriter tw  =   new  StringWriter();
*F8eX.W7I2EMK0
14          HtmlTextWriter hw  =   new  HtmlTextWriter(tw);
?_S'I}6iI?+C$L0
15          GridView1.RenderControl(hw);ITPUB個人空間&?+G3K"CJT
16          Response.Write(tw.ToString());ITPUB個人空間_`2kQ�R?Bg/
17          Response.End();
Tgddh6Wqy8a*?0
18      }ITPUB個人空間DOv)HmMB-@h

XO/CV-r,X|h0
19      // 如果沒有下面方法會報錯類型“GridView”的控件“GridView1”必須放在具有 runat=server 的窗體標記內 ITPUB個人空間%PL [*eG0R
20       public   override   void  VerifyRenderingInServerForm(Control control)ITPUB個人空間cm_#g3EKT
21      {ITPUB個人空間5P7@ irju
22      }

 

二、Excel數據導入到GridView中

 1     // 讀取Excel數據的代碼:這個很簡單的 ITPUB個人空間O3U$j}8Au$l
 2      private  DataSet CreateDataSource()ITPUB個人空間;Q_$q.r@,T!yge
 3      {ITPUB個人空間LL2A,o v`+xi/A
 4           string  strCon;ITPUB個人空間8?9F$J/O/SNl7q:V
 5          strCon  =   " Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "   +  Server.MapPath( " excel.xls " +   " ; Extended Properties=Excel 8.0; " ;ITPUB個人空間;LU d'c"~(zr~
 6          OleDbConnection olecon  =   new  OleDbConnection(strCon);ITPUB個人空間+^KF#AZ_ Xml
 7          OleDbDataAdapter myda  =   new  OleDbDataAdapter( " SELECT * FROM [Sheet1$] " , strCon);
Gb&t&},ir"J9S0
 8          DataSet myds  =   new  DataSet();
*GN8p+s�eX1MR LE0
 9          myda.Fill(myds);
6C;uYuOo3OxJ0
10           return  myds;ITPUB個人空間,a Q?/G ])Ph�C
11      }
5HrV ]T+HSqg0
12       protected   void  Button1_Click( object  sender, EventArgs e)
;r1u1q3/L0
13      {
0[@KRq0
14          GridView1.DataSource  =  CreateDataSource();ITPUB個人空間Tn;s}�_E E[
15          GridView1.DataBind();
-C G{y;/t"?0
16      }

 

【說明】

1、上面的例子網站上到處都有,我這裏只是貼出來而已;

2、上述例子的代碼是正確的,絕對沒有語法錯誤;

3、但是,上面的代碼只能是針對於GridView控件直接在aspx頁面上,如果在用戶控件上使用了GridView控件,那麼你必須按照以下方式處理了

 

三、用戶控件上的GridView如何導出到Excel表

1、前面步驟跟前面的一樣,你需要一個按鈕來處理導入/導出事件

2、你需要把用戶控件放到某個頁面上,如Test.aspx

3、如果你僅僅這樣,頁面肯定會報錯。

4、爲了避免錯誤,你必須在Test.aspx頁面把第一行改成(紅色爲添加進去的)

<%@ Page Language="C#"EnableEventValidation = "false" AutoEventWireup="true" CodeFile="SysUser.aspx.cs" Inherits="Autho_SysUser2" %>

5、然後在Test.aspx.cs中重寫ITPUB個人空間 upG6{4k8G ^0GMv
         public   override   void  VerifyRenderingInServerForm(Control control)
/wEg/WZ!c;r'n0
       {

           //函數體內沒有任何代碼,切記
bC#i�a,iT0
        }

6、瀏覽網頁即可使用

發佈了108 篇原創文章 · 獲贊 1 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章