我正在尝试向我的代码添加一个函数,将Gridview导出到word文档。作为参考,这里是我用来导出Gridview的代码:
Response.AddHeader("content-disposition", "attachment;filename=Export.doc");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.word";
StringWriter stringWrite = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
HtmlForm frm = new HtmlForm();
GridView1.Parent.Controls.Add(frm);
frm.Attributes["runat"] = "server";
frm.Controls.Add(GridView1);
frm.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
为了记录,我没有写这段代码,所以如果你想知道为什么某些事情是某种方式,我不知道。
无论如何,我需要解决此导出中的三个问题区域:
表格中的单元格只导出两个字符宽;这自然使桌子难以理解。我怀疑修复此问题的方法涉及使用“Gridview1.Styles.Add(...)”或向Gridview1添加Css类,但我这样做的尝试都失败了。
在网站上,Gridview已启用排序。我想保留列标题中的这些超链接,从而转换为word文档。
在网站上,Gridview在每一行都有“编辑”和“删除”功能(如果重要的话,最左边的列。)我想从doc export这个词中排除这一列。
任何人都可以帮助解决这些问题。非常感谢。
答案 0 :(得分:0)
Response.AddHeader("content-disposition", "attachment;filename=Export.doc");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.word";
StringWriter stringWrite = new StringWriter();
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
HtmlForm frm = new HtmlForm();
/*--------------*/
GridView1.Columns(0).Visible = false; //HIDE EDIT
GridView1.Columns(1).Visible = false; //HIDE DELETE
GridView1.AllowSorting = false; //Disable Sorting
GridView1.DataBind();
/*--------------*/
GridView1.Parent.Controls.Add(frm);
frm.Attributes["runat"] = "server";
frm.Controls.Add(GridView1);
frm.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
我不太确定你在问题1中谈论的是什么,但也许尝试禁用列上的自动换行? appropriatecolumn.Wrap = false;