Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=report.xls");
Response.ContentType = "application/vnd.ms-excel";
Response.ContentEncoding=System.Text.Encoding.GetEncoding("Big5");
this.EnableViewState= false;
System.IO.StringWriter tw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw); this.DataGrid1.RenderControl(hw);
Response.End();因Response是內制對像,我就知道怎麼去封裝它了,我現在很多個頁面都要用,所以我想封裝起來直接調用這樣寫代碼的時候快一點,還請高手幫忙!
Response.AddHeader("Content-Disposition", "attachment;filename=report.xls");
Response.ContentType = "application/vnd.ms-excel";
Response.ContentEncoding=System.Text.Encoding.GetEncoding("Big5");
this.EnableViewState= false;
System.IO.StringWriter tw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw); this.DataGrid1.RenderControl(hw);
Response.End();因Response是內制對像,我就知道怎麼去封裝它了,我現在很多個頁面都要用,所以我想封裝起來直接調用這樣寫代碼的時候快一點,還請高手幫忙!
解决方案 »
- 问下C#中Exception与exception之间的区别
- 报表中的打印、导出、翻页图标不可用
- asp.net2.0实现滚动广告
- 为什么我做得这个rss会出错?大家帮我看看
- 求asp.net(c#)的文章系统,div+css布局(100分)
- datagrid的小問題,幫忙看看
- 我的公式,哪里错了呢?帮帮忙啊,顶者有分
- 怎么样把最后一个逗号去掉呀
- 实现随机向数据库插入数据的功能,100分送上
- aspx页面中要用到几个图片,我用新图片把旧的覆盖后再执行,为什么还是显示原来的旧图片?
- 下载论坛源程序后,只看到前台的.aspx文件,无法看到后台的.aspx.cs文件,如何解决?
- oracle 中查询scott表中姓名中为姓王的所有SQL语句怎么写呢
{
HttpContext context = HttpContext.Current;
HttpResponse response = context.Response;
response.Clear();
response.Buffer = true;
response.Charset = encoding;
response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName) + ".xls");
response.ContentEncoding = Encoding.GetEncoding(encoding);
response.ContentType = "application/ms-excel";
if (ctl.Page != null)
{
ctl.Page.EnableViewState = false;
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
this.ClearControls(ctl);
ctl.RenderControl(htw);
response.Write(sw.ToString());
response.End();
ctl.Page.EnableViewState = true;
}
else
{
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
ctl.RenderControl(htw);
response.Write(sw.ToString());
response.End();
} } public void ExportToExcel(Control ctl, string fileName)
{
//this.ExportToExcel( ctl,fileName,"utf-8");
this.ExportToExcel(ctl, fileName, "gb2312");
}
public void ExportToExcel(DataTable dt, string fileName)
{
DataGrid dg = new DataGrid();
dg.DataSource = dt.DefaultView;
dg.AllowPaging = false;
dg.DataBind();
this.ExportToExcel(dg, fileName);
}
public void ExportToExcel(DataSet ds, string fileName, string tableName)
{
DataTable dt = null;
if (tableName == "")
dt = ds.Tables[0];
else
dt = ds.Tables[tableName];
this.ExportToExcel(dt, fileName);
} public void ExportToExcel(DataSet ds, string fileName)
{
this.ExportToExcel(ds, fileName, "");
}
還請高手再幫我看看是怎麼回事,謝謝!
public void ExportToExcel(DataGrid dg,string FileName,string Encoding ,string OpenMode)
{
HttpContext context = HttpContext.Current;
HttpResponse response =context.Response;
response.Clear();
response.Buffer = true;
response.Charset = Encoding;
response.AddHeader("Content-Disposition", OpenMode+";filename="+FileName);
response.ContentType = "application/vnd.ms-excel";
response.ContentEncoding=System.Text.Encoding.GetEncoding(Encoding);
dg.Page.EnableViewState= false;
System.IO.StringWriter tw = new System.IO.StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
dg.RenderControl(hw);
response.Write(hw);
response.End();
dg.Page.EnableViewState=true;
}
private void ClearControls(Control control)
{
for (int i=control.Controls.Count -1; i>=0; i--)
{
ClearControls(control.Controls[i]);
} 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;
}
上面這個網址裏有datagrid的視頻教程,在這個教程裏,有關于datagrid導出excel的部分,你可以參考一下