Asp.Net输出数据到EXCEL表格中
其实,利用ASP.NET输出指定内容的WORD、EXCEL、TXT、HTM等类型的文档很容易的。主要分为三步来完成。 电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站8 l, l8 B# n @/ Y0 P
打造最好的电脑自学交流论坛2 a) Z( K" [1 h9 X" M* k
一、定义文档类型、字符编码 . p3 f8 Z* `/ ~4 x. y+ S/ ~: L" ]
打造最好的电脑自学交流论坛; M* k! k: S% n0 @" C, c
Response.Clear(); 我爱电脑技术社区--打造最好的电脑技术自学交流平台& P. O9 \: }) r$ B; S7 j
Response.Buffer= true; 我爱电脑技术社区--打造最好的电脑技术自学交流平台5 `( o: t( w N3 C) R
www.520diannao.com7 l, \; o2 R. Z, |! r" n7 ] w
Response.Charset="utf-8"; 我爱电脑技术社区--打造最好的电脑技术自学交流平台, G' O* t) M. b: q5 L$ b. T
' X2 n) `" B- N! S/ t1 F) P" \8 A //下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开
/ h- c- p5 f/ |; g: ]- @我爱电脑技术社区--打造最好的电脑技术自学交流平台
! f0 y% U5 ]# W我爱电脑技术论坛 //filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc .xls .txt .htm
9 E8 P" a, }. U" k7 o" u& u打造最好的电脑自学交流论坛电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站8 k# A( g. S# P/ M
Response.AppendHeader("Content-Disposition","attachment;filename=FileFlow.xls");
) d+ A6 u4 o0 N4 i0 d) h' }) fwww.520diannao.com我爱电脑技术社区--打造最好的电脑技术自学交流平台 ~- t/ O) A' ] m5 G5 i3 A
Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");
& J; a! X5 W* \. q8 I1 u- l, \打造最好的电脑自学交流论坛我爱电脑技术社区--打造最好的电脑技术自学交流平台1 b0 T9 f& _$ s B
//Response.ContentType指定文件类型 可以为application/ms-excel application/ms-word application/ms-txt application/ms-html 或其他浏览器可直接支持文档 我爱电脑技术社区--打造最好的电脑技术自学交流平台: _9 S# S5 v) s/ l# }
5 c B, W7 p9 r% w我爱电脑技术社区--打造最好的电脑技术自学交流平台 Response.ContentType = "application/ms-excel";
7 B" H$ F' `3 Twww.520diannao.com
5 W- P( [! F! q5 g& u, x; ]我爱电脑技术社区--打造最好的电脑技术自学交流平台 this.EnableViewState = false;
+ b( a( J% \4 i; \打造最好的电脑自学交流论坛
( f7 c$ @) [( M d( l我爱电脑技术社区--打造最好的电脑技术自学交流平台 二、定义一个输入流 % T9 t5 Z8 p+ T& Z) y4 ?
/ a" K$ r v9 |& M5 F$ X0 p! x. C
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
# E: @( L6 b" o( ]0 d2 R9 f System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
* N: `6 n3 g' E2 f% a6 y' r1 G我爱电脑技术论坛
* J1 Z; k3 v6 W1 g我爱电脑技术论坛 三、将目标数据绑定到输入流输出
& e$ D/ b0 \# `5 e0 Twww.520diannao.com
( }& y$ N) O! h: U( W. O. ywww.520diannao.com this.RenderControl(oHtmlTextWriter);
+ @% j3 W$ y7 g6 l我爱电脑技术论坛 //this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件 www.520diannao.com8 I/ E* ]# Y, u5 T i* E+ k6 E8 t
Response.Write(oStringWriter.ToString()); 我爱电脑技术论坛/ I. ^2 f: c' Y. r ^
3 ], b1 R! M S1 x+ p
Response.End();
; a7 N; s: @6 u7 q! ?0 G+ d我爱电脑技术社区--打造最好的电脑技术自学交流平台
4 ]; F% u$ c# c0 F我爱电脑技术论坛四、 这时如果发生"只能在执行 Render() 的过程中调用 RegisterForEventValidation"的错误提示。
6 N. ]1 ^, b2 s N; d+ `www.520diannao.com我爱电脑技术社区--打造最好的电脑技术自学交流平台" f' S5 p0 w+ R0 Q2 Y" _0 M
有两种方法可以解决:打造最好的电脑自学交流论坛+ V+ s' ^/ K3 `2 ?9 T) C& @. [
1.修改web.config(不推荐)<pages enableEventValidation ="false" ></pages>
0 _7 ^; ]3 `; v. r7 i2 Z( J! h4 C打造最好的电脑自学交流论坛2.直接在导出Execl的页面修改 打造最好的电脑自学交流论坛6 J" N5 ]# m9 J8 P
5 ?5 P3 ?+ s4 S% |" X4 ^2 T1 bwww.520diannao.com 总结:本例程在Microsoft Visual Studio .NET 2003平台下测试通过,适用于C#和VB,当采用VB的时候将 this 关键字改成 me 。