您的位置:首页 > 其它

DataGrid导入Excel

2008-05-03 00:16 204 查看
参数为DataGrid的ID


public void ToExcel(System.Web.UI.Control ctl)






{


HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");


HttpContext.Current.Response.Charset ="UTF-8";


HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;


HttpContext.Current.Response.ContentType ="application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword


ctl.Page.EnableViewState =false;


System.IO.StringWriter tw = new System.IO.StringWriter() ;


System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);


ctl.RenderControl(hw);


HttpContext.Current.Response.Write(tw.ToString());


HttpContext.Current.Response.End();


}
---以上适合"自动生成列"的DataGrid. ()
对于DataGrid的模板列,除了上面代码外,还要加些东西.
完整代码:


private static 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;


}




public static void OutPutExcel(DataGrid dgrd, string v_FileName)






{


try






{


HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename="+v_FileName+".xls");


HttpContext.Current.Response.Charset ="gb2312";


HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;


HttpContext.Current.Response.ContentType ="application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword


dgrd.Page.EnableViewState =false;


System.IO.StringWriter tw = new System.IO.StringWriter();


System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);


ClearControls(dgrd);


dgrd.RenderControl(hw);


HttpContext.Current.Response.Write(tw.ToString());


HttpContext.Current.Response.End();


}


catch(Exception e)






{


throw e;


}


}
文章来源于 http://www.cnblogs.com/zhangzs8896 版权归原作者所有
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: