您的位置:首页 > 其它

用户控件上的GridView如何导入、导出到Excel表

2009-11-06 16:57 369 查看

用户控件上的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
}

C B+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();

Tgdd h6Wq y8a*?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();

*G N8p+s�eX1MR
LE0

9
myda.Fill(myds);

6C;uYuOo3OxJ0

10

return
myds;ITPUB个人空间,a
Q?/G ])Ph�C

11
}

5H rV
]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个人空间 u pG6{4k8G
^0GMv

public

override

void
VerifyRenderingInServerForm(Control control)

/wEg /WZ!c;r'n0

{

//函数体内没有任何代码,切记

bC#i�a,iT0

}

6、浏览网页即可使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: