在Web中GridView导出EXCEL:移除控件和定义样式应用
2013-01-12 13:03
441 查看
public static void GridViewToExcel(GridView grd, HttpResponse response, string charset) {
RemoveControls(grd);
response.Clear();
response.Buffer = true;
response.Charset = charset;
response.AppendHeader("Content-Disposition", "attachment;filename=NewFileName.xls"); //文件名可以自定义
response.ContentEncoding = System.Text.Encoding.UTF8;
response.ContentType = "application/ms-excel";
System.Globalization.CultureInfo AreaInfo = new System.Globalization.CultureInfo("zh-CN", true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(AreaInfo);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
//可选:定义样式
oStringWriter.WriteLine(Styles());
grd.GridLines = GridLines.Both;
grd.Font.Name = "Arial";
grd.HeaderStyle.Font.Bold = true;
grd.RenderControl(oHtmlTextWriter);
response.Write(oStringWriter.ToString());
response.End();
}
//样式可以在EXCEL中设置好后,另存为HTML来确定
private static string Styles(){
return "<style>td{mso-number-format:\"\\@\";}.dateTime{mso-number-format:\"h\\:mm\"}</style>";
}
//如GridView的CheckBox,Button,TextBox等等
private static void RemoveControls(Control gv)
{
Literal replace = new Literal();
for (int i = 0; i < gv.Controls.Count; i++){
if (gv.Controls[i].GetType() == typeof(CheckBox)){
replace.Text = ((CheckBox)gv.Controls[i]).Checked ? "Y" : "N";
gv.Controls.Remove(gv.Controls[i]);
gv.Controls.AddAt(i, replace);
}
if (gv.Controls[i].HasControls()){
RemoveControls(gv.Controls[i]);
}
}
}
RemoveControls(grd);
response.Clear();
response.Buffer = true;
response.Charset = charset;
response.AppendHeader("Content-Disposition", "attachment;filename=NewFileName.xls"); //文件名可以自定义
response.ContentEncoding = System.Text.Encoding.UTF8;
response.ContentType = "application/ms-excel";
System.Globalization.CultureInfo AreaInfo = new System.Globalization.CultureInfo("zh-CN", true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(AreaInfo);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
//可选:定义样式
oStringWriter.WriteLine(Styles());
grd.GridLines = GridLines.Both;
grd.Font.Name = "Arial";
grd.HeaderStyle.Font.Bold = true;
grd.RenderControl(oHtmlTextWriter);
response.Write(oStringWriter.ToString());
response.End();
}
//样式可以在EXCEL中设置好后,另存为HTML来确定
private static string Styles(){
return "<style>td{mso-number-format:\"\\@\";}.dateTime{mso-number-format:\"h\\:mm\"}</style>";
}
//如GridView的CheckBox,Button,TextBox等等
private static void RemoveControls(Control gv)
{
Literal replace = new Literal();
for (int i = 0; i < gv.Controls.Count; i++){
if (gv.Controls[i].GetType() == typeof(CheckBox)){
replace.Text = ((CheckBox)gv.Controls[i]).Checked ? "Y" : "N";
gv.Controls.Remove(gv.Controls[i]);
gv.Controls.AddAt(i, replace);
}
if (gv.Controls[i].HasControls()){
RemoveControls(gv.Controls[i]);
}
}
}
相关文章推荐
- 读取DataGrid或GridView等WebControls控件,导出Excel 读取Excel到dataTable中
- 扩展GridView控件(8) - 导出数据源的数据为Excel、Word或Text
- C#WinFrom DEV控件Gridview导入导出Excel
- 扩展GridView控件(8) - 导出数据源的数据为Excel、Word或Text
- ASP.NET 2.0,C#----利用GridView控件导出其他文件(导出Excel,导出Word文件)
- 关于Gridview中使用控件和图片导出到Excel的处理
- 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常
- 定义控件android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题
- 扩展GridView控件(8) - 导出数据源的数据为Excel、Word或Text
- 在ASP.NET WEB控件中应用样式(Style)[转]
- Web应用导出Excel报表的简单实现(HTML)
- GridView导出Excel加上样式并且去除超链接
- UltraWebGrid手写导出excel方法(非自带控件方法)
- 扩展GridView控件(8) - 导出数据源的数据为Excel、Word或Text
- 关于Gridview中使用控件和图片导出到Excel的处理
- 表格控件(GridView)数据格式化导出到Excel并下载.
- ASP.NET 2.0,C#----利用GridView控件导出其他文件(导出Excel,导出Word文件)
- 关于用excel导出gridview控件中的数据时,会提示什么服务器控件 ,要在server等等的错误
- C#使用RenderControl将GridView控件导出到EXCEL的方法
- 扩展GridView控件(8) - 导出数据源的数据为Excel、Word或Text