2 zq198972510 zq198972510 于 2015.06.13 12:43 提问

asp.net中导出DataGrid内容为word遇到的问题!

在asp.net中导出DataGrid内容到word时,html页面中的textbox控件也被导到word了,想问一下,怎么只到出DataGrid中textbox的文字内容到word,不要把textbox控件也导出来了!

Table Gridviewtable = ((Table)GridView1.Controls[0]);
string bankCard = ((TextBox)Gridviewtable.Rows[0].FindControl("textbox1")).Text;
Response.Buffer = true;
Response.Charset = "utf-8";

    //下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开

    //filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc || .xls || .txt ||.htm

    Response.AppendHeader("Content-Disposition", "attachment;filename='"+bankCard+".doc");
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");

    //Response.ContentType指定文件类型 可以为application/ms-excel || application/ms-word || application/ms-txt || application/ms-html || 或其他浏览器可直接支持文档

    Response.ContentType = "application/ms-word";
    this.EnableViewState = false;


    System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

    GridView1.RenderControl(oHtmlTextWriter);//主要是这句话怎么改,这里是全部输出到word

    //this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件

    Response.Write(oStringWriter.ToString());
    Response.End();

1个回答

zq198972510
zq198972510   2015.07.10 21:53
已采纳

在解决这个问题时我想了另外一种方法,首先是在ASP.NET中操作word,使用SaveAs()方法保存到一个和网页表格一样的word到本地,然后在使用上述方法下载制定目录里的文件,这样既可以保存一份到本地,为日后查询使用,也可以提供下载。我的这个方法希望对后来人有帮助。

Csdn user default icon
上传中...
上传图片
插入图片