asp.net 将页面html下载为word

平台:.net 页面为aspx文件
需求:在ie9浏览器实现将页面下载为word文档,内容可能为竖着在word中(因为word模板就是宽度过大,所以在下载成竖着的)
尝试:(1)试过FileSaver.js 和 jquery.wordexport.js ,但是在ie9浏览器上会报错
(2)尝试过ActiveXObject的方式,但是得设置ie配置项,而且下载的时候,浏览器很会卡

word文件在后台的controller中生成,然后用a href的形式链接试试

关键函数:

  1.函数原型:Response.AppendHeader(name,value);

    本例中使用: Response.AppendHeader("Content-Disposition", "attachment;filename=fileDown.doc");

  说明:将http头添加到输出流,name 为Http头,value为Http头的值,可以实现刷新页面,页面跳转,文件下载等,就看你name的值是什么。例如在本例中使用name为Content-Disposition:

    Content-Disposition:是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活浏览器文 件下载对话框,它的文件名框自动填充了头中指定的文件名,来确保浏览器弹出下载对话框。

在本例中value的值为attachment;filename=fileDown.doc:

    attachment: attachment 参数表示作为附件下载,您可以改成 online在线打开 ,filename自定义下载的文件名称,文件后缀为想要下载的文件类型,后面有说明。

  2.Response.ContentType

    本例中设置:Response.ContentType = "application/ms-word";

  说明:指定文件类型 可以为application/ms-excel , application/ms-wordapplication/ms-txt,application/ms-html或其他浏览器可直接支持文档。

  3.System.Web.UI.HtmlTextWriter类

  说明:将标记字符和文本写入到 ASP.NET 服务器控件输出流,也就是用于把HTML内容输出到服务器控件输出流的一个类。在本例中是将要下载的页面内容输出到一个StringWriter对象中。

  4.RenderControl(HtmlWriter);

  说明:将服务器控件的内容输出到所提供的HtmlWriter对象中,在本例中是将要下载的页面内容输出到HtmlWriter中。

  注意:在本例中需要将页面的EnableEventValidation="false",<pages enableEventValidation="false"/>不然会执行出错。

  实现思想:

  第一步:设置Response的格式,缓冲,编码等,调用AppendHeader函数用于弹出浏览器保存文件对话框,并设置文件名字、类型以及保存方式(在线浏览还是作为附件保存)。

  第二步:初始化HtmlWriter,将下载页面内容输出给HtmlWriter,并将内容输出到一个StringWriter对象中。

  第三步:将StringWriter对象的值赋值给一个string对象,然后操作字符串对象,截取想要下载的内容。

  第四步:调用Response.Write将string对象输出到第一步指定的文件中。

可以使用这个类库实现 FreeSpire.Doc

Response.Clear();
Response.AddHeader("Content-Type", "application/msword");
Response.Write("<html><body>Hello, world!</body></html>");
Response.End();

提供参考实例思路方法,期望帮助到你:https://www.cnblogs.com/wen20104659/p/4922826.html

将html转为word
1、保存网页zd
在浏览器中访问目标网页,执行菜单“文件”→“另存为”,文件类型选择“网页,全部”。
2、用WPS文字打开html文件内
执行“文件”→“打开”,文件类型选择“网页文件”或“所有文件”,以打开刚才下载得到的《[征稿八]怎样用WPS制作PDF》html文件。
3、去掉不需要的部分
注:表格形式出现的正文,可以选中后执行“表格”→“转换”→“表格转换为文本”去除表格外框。
4、最后另容存为WPS文档或WORD文档即可。
如有帮助,望采纳
二 将net 转为word

2. asp.net导出word
public void Download()

{

Random rd = new Random();

string fileName = DateTime.Now.ToString("yyyyMMddhhmm") + rd.Next() + ".doc";

//存储路径

string path = Server.MapPath(fileName);

//创建字符输出流

StreamWriter sw = new StreamWriter(path, true, System.Text.UnicodeEncoding.UTF8);

//需要导出的内容

string str = "<html><head><title>;无标题文档</title></head><body>;这里放从数据库导出的word文档内容</body></html>";

//写入

sw.Write(str);

sw.Close();

Response.Clear();

Response.Buffer = true;

this.EnableViewState = false;

Response.Charset = "utf-8";

Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));

Response.ContentType = "application/octet-stream";

Response.WriteFile(path);

Response.Flush();

Response.Close();

Response.End();

}