博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataGrid内容的导出
阅读量:5924 次
发布时间:2019-06-19

本文共 1829 字,大约阅读时间需要 6 分钟。

hot3.png

工作中可能需要把DataGrid的内容导出到其他的文件中,比如文本文件,EXCEL文件,WORD文件等等。

对于WORD、EXCEL文件,可以使用下面的方法(以下以EXCEL为例):

Response.Clear();    Response.Buffer= true;    Response.Charset="GB2312";    Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");  Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文   Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。    this.EnableViewState = false;    System.IO.StringWriter oStringWriter = new System.IO.StringWriter();    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);    DataGrid1.RenderControl(oHtmlTextWriter);    Response.Write(oStringWriter.ToString());    Response.End();

这里使用了DataGrid的RenderControl方法,该方法输出DataGrid格式化的Html内容到一个Writer,这样,我们就可以在服务器端获得DataGrid的Html格式的代码了。
由于WORD、EXCEL都是带格式化的,所以能轻松识别HTML格式的内容,但对TEXT文件就不行了,上面的代码输出的TXT文件将是包含HTML格式的TXT文件,而不是想象中的DATAGRID的文本内容。解决办法是采用HTMLCONTROL。
HTMLCONTROL都有innerHTML和innerText两个属性,这里就利用这两个属性实现文本的导出:
HtmlGenericControl div=new HtmlGenericControl();

div.innerHTML=oStringWriter.ToString();

div.innerText就是要输出的文本了,所以上面的代码修改为:

Response.Clear(); Response.Buffer= true; Response.Charset="GB2312";    Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls"); Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 this.EnableViewState = false;    System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);    DataGrid1.RenderControl(oHtmlTextWriter); HtmlGenericControl div=new HtmlGenericControl();div.InnerHTML=oStringWriter.ToString();Response.Write(div.InnerText);   Response.End();

转载于:https://my.oschina.net/bv10000/blog/76804

你可能感兴趣的文章
LeetCode OJ:Copy List with Random Pointer(复制存在随机链接的链表)
查看>>
Oracle存储过程、函数、包加密wrap
查看>>
BlinkToRadio 两个节点通信
查看>>
RCP开发小技巧(一)
查看>>
微软雅黑的问题(for silverlight)
查看>>
Oracle函数大全
查看>>
mysql 常用操作语句
查看>>
ArcGIS api for JavaScript 3.27 按需显示需要的图层
查看>>
Java实现发邮件功能
查看>>
强制开启android webview debug模式使用Chrome inspect
查看>>
win8 解析json数据模板 XMl解析数据
查看>>
项目总结26:java调用webservice接口(asmx)
查看>>
VS2013导入密钥出错:找不到解密的证书和私钥
查看>>
多线程编程核心技术日记
查看>>
git入门网站
查看>>
[CF438D]The Child and Sequence
查看>>
[LeetCode] Jump Game II 贪心
查看>>
第二阶段总结
查看>>
Assembly.LoadFrom加载程序集类型转换失败解决方法
查看>>
团队项目PCP--自我评价
查看>>