datagrid导出 Excel 时,如何保留显示网格线

本文介绍了一种在ASP.NET中将DataGrid控件的内容导出为Excel文件的方法。通过设置HTTP响应头和使用HTMLTextWriter来渲染DataGrid,可以生成带有Excel元数据的HTML页面,并最终提供给用户下载。

 

 public void toexcel(System.Web.UI.WebControls.DataGrid datagrid)

        {

            System.Web.HttpContext.Current.Response.Clear();

            System.Web.HttpContext.Current.Response.Write("<html xmlns:x=/"urn:schemas-microsoft-com:office:excel/">");

            System.Web.HttpContext.Current.Response.Write("<head>");

            System.Web.HttpContext.Current.Response.Write("<!--[if gte mso 9]><xml>");

            System.Web.HttpContext.Current.Response.Write("<x:ExcelWorkbook>");

            System.Web.HttpContext.Current.Response.Write("<x:ExcelWorksheets>");

            System.Web.HttpContext.Current.Response.Write("<x:ExcelWorksheet>");

            System.Web.HttpContext.Current.Response.Write("<x:Name>sheet1</x:Name>");

            System.Web.HttpContext.Current.Response.Write("<x:WorksheetOptions>");

            System.Web.HttpContext.Current.Response.Write("<x:Print>");

            System.Web.HttpContext.Current.Response.Write("<x:ValidPrinterInfo/>");

            System.Web.HttpContext.Current.Response.Write("</x:Print>");

            System.Web.HttpContext.Current.Response.Write("</x:WorksheetOptions>");

            System.Web.HttpContext.Current.Response.Write("</x:ExcelWorksheet>");

            System.Web.HttpContext.Current.Response.Write("</x:ExcelWorksheets>");

            System.Web.HttpContext.Current.Response.Write("</x:ExcelWorkbook>");

            System.Web.HttpContext.Current.Response.Write("</xml>");

            System.Web.HttpContext.Current.Response.Write("<![endif]--> ");

            System.Web.HttpContext.Current.Response.Write("</head>");

            System.Web.HttpContext.Current.Response.Write("<body>");

            System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.DateTime.Now.ToFileTime() + ".xls");

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

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

            System.Web.HttpContext.Current.Response.ContentType = "application/ms-excel";

            //loggrid.Page.EnableViewState   =false;           

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

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

            datagrid.RenderControl(hw);

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

            System.Web.HttpContext.Current.Response.Write("<font style=/"color:white;/">.</font></body>");

            System.Web.HttpContext.Current.Response.Write("</html>");

            System.Web.HttpContext.Current.Response.End();

        }

原帖子地址: http://forums.asp.net/1674188/ShowThread.aspx

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值