最近做这么一个功能,将网页内的图片,表格之类的直接导入到一个word中保存,在WebForm里已经有办法实现了,代码如下。
System.IO.StringWriter SW = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter HTW = new System.Web.UI.HtmlTextWriter(SW); Page.RenderControl(HTW); //Page为要导出的对象,当前是Page,如果是DataGrid,DataList等都可以 Response.Buffer = true; Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.ContentType = "Response.ContentType"; //Response.ContentType是输出流的 HTTP MIME 类型 //Response.ContentType --- word文件 //application/vnd.ms-excel --- excel文件 // Response.Charset = "utf-8"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8"); Response.AddHeader("Content-Disposition", "attachment;filename=XXX.doc"); //attachment --- 作为附件下载 //inline --- 在线打开 //filename如过是中文,则可以用HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8) //进行进行编码,以解决文件名乱码的问题 Response.Write(SW.ToString()); Response.Flush(); Response.Close();
但是在MVC的情况下这个Page.RenderControl()方法却没有,请问在MVC里有什么替代方法吗。其实我对于WebForm和MVC的Page属性不太了解,它们的机制有何不同的,望指教。
http://www.cnblogs.com/hipo/archive/2012/03/13/2394019.html 这个是导出excel 可以参考着写
问题不是如何导出,而是将页面的内容放到HtmlTextWriter对象中啊。