日历
网志分类
· 所有网志 (225)
· xml (4)
· asp.net (50)
· asp (18)
· SQL Server (3)
· wap (3)
· 心情日记 (20)
· 奇趣人生 (16)
· C# (9)
· xsl (1)
· VML教程 (1)
· 电脑知识 (2)
· 网站建设 (14)
· 未分类 (84)
站内搜索
友情链接
· 我的歪酷 非非共享界
· 工厂人才网
· 中国程序员人才网
· 工厂招聘
· 网站推广方法
· 9292.us网址站
· 程序员招聘
· 工厂招聘
· 手提电脑商城
· 程序员招聘
· 燃烧控制设备
· asp.net
· 工厂招聘
· 网站推广

订阅 RSS

0028626

歪酷博客

虚拟世界之精彩人生

能吃苦的人吃苦半辈子,不能吃苦的人吃苦一辈子。---老罗语录

党教育我们:

“人最宝贵的是生命,生命属于我们只有一次。人的一生应当这样度过:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞愧。临终之际,他能够说:‘我的整个生命和全部精力,都献给了世界上最壮丽的事业——为全人类的解放而斗争。’”

时光荏苒,岁月流逝,仅以此纪念那一段走过来的开发岁月,希望哪天回首时,仍能想起一幕幕难忘的日子。
一个新的尝试,开始、而不知何时结束...


« 上一篇: 在ASP.NET中运用PlaceHolder控件 相当于include 下一篇: asp.net+c#+sql生成rss2.0代码 »
虚拟过客 @ 2005-07-18 17:28

private void Button2_Click(object sender, System.EventArgs e)
{
Response.Clear();
Response.Buffer= true;
Response.Charset="GB2312";    
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls");
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
this.EnableViewState = false;    
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.ClearControls(MyDataGrid);
this.MyDataGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();

}
private void ClearControls(Control control)
{
for (int i=control.Controls.Count -1; i>=0; i--)
{
ClearControls(control.Controls);
}

if (!(control is TableCell))
{
if (control.GetType().GetProperty("SelectedItem") != null)
{
LiteralControl literal = new LiteralControl();
control.Parent.Controls.Add(literal);
try
{
literal.Text = (string)control.GetType().GetProperty("SelectedItem").GetValue(control,null);
}
catch

{

}

control.Parent.Controls.Remove(control);
}

else

if (control.GetType().GetProperty("Text") != null)
{
LiteralControl literal = new LiteralControl();
control.Parent.Controls.Add(literal);
literal.Text = (string)control.GetType().GetProperty("Text").GetValue(control,null);
control.Parent.Controls.Remove(control);
}
}
return;
}

其实,利用ASP.NET输出指定内容的WORD、EXCEL、TXT、HTM等类型的文档很容易的。主要分为三步来完成。



一、定义文档类型、字符编码  



   Response.Clear();
   Response.Buffer= true;
   Response.Charset="utf-8"; 



   //下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开
   //filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc    .xls    .txt   .htm  



   Response.AppendHeader("Content-Disposition","attachment;filename=FileFlow.xls");
   Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");  
   //Response.ContentType指定文件类型 可以为application/ms-excel    application/ms-word    application/ms-txt    application/ms-html    或其他浏览器可直接支持文档
   Response.ContentType = "application/ms-excel";
   this.EnableViewState = false;  



  二、定义一个输入流  
   System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
   System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);  



  三、将目标数据绑定到输入流输出  
   this.RenderControl(oHtmlTextWriter);   
   //this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件
   Response.Write(oStringWriter.ToString());
   Response.End();  



  总结:本例程在Microsoft Visual Studio .NET 2003平台下测试通过,适用于C#和VB,当采用VB的时候将 this 关键字改成 me 。

最新评论


1凡

2005-07-18 21:49 网址: http://spaces.msn.com/members/bobbych66/

。。。
请问BONNIE兄,这是COPY上来的吗???还是照书上打的呀???



bonnie

2005-07-19 09:04

bobby,哈哈,你怎么这样说话阿



sex0209

2005-07-22 08:18

我想问问,有啥用啊?作弊吗?


评论 / 个人网页 / 扔小纸条
*昵称

已经注册过? 请登录

Email
网址
*评论