前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >html格式转换word_html嵌入word

html格式转换word_html嵌入word

作者头像
全栈程序员站长
发布2022-09-20 19:58:15
发布2022-09-20 19:58:15
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

1 基于wps直接将页面信息下载成word文档

代码语言:javascript
代码运行次数:0
复制
 1 public void test()  2  {  3  4 WPS.Application wps = null;  5 try  6  {  7 wps = new WPS.Application();  8  }  9 catch (Exception ex) 10  { 11 return; 12  } 13 var httpurl = "http://www.baidu.com"; 14 WPS.Document doc = wps.Documents.Open(httpurl, false, true); 15 string filename = System.DateTime.Now.Year.ToString() + System.DateTime.Now.Month.ToString() + System.DateTime.Now.Day.ToString() + 16 System.DateTime.Now.Hour.ToString() + System.DateTime.Now.Minute.ToString() + System.DateTime.Now.Second.ToString(); 17 18 string saveFileName = "D:\\1.doc"; 19  doc.SaveAs(saveFileName, WPS.WdSaveFormat.wdFormatDocument); 20 21  doc.Close(WPS.WdSaveOptions.wdSaveChanges, WPS.WdOriginalFormat.wdWordDocument, WPS.WdRoutingSlipStatus.wdNotYetRouted); 22  wps.Quit(WPS.WdSaveOptions.wdSaveChanges, WPS.WdOriginalFormat.wdWordDocument, WPS.WdRoutingSlipStatus.wdNotYetRouted); 23 }

View Code

这种情况下载的word文档中,样式全乱了,当时参考资料为:http://lanhy2000.blog.163.com/blog/static/4367860820119198575552/

2 用数据流的形式将页面下载成word文档

1>首先获取webUrl页面输出内容

代码语言:javascript
代码运行次数:0
复制
 1 /// <summary>  2 /// 获取weburl输出内容  3 /// </summary>  4 /// <param name="url">weburl</param>  5 /// <returns>输出内容</returns>  6 public static string GetPage(string url)  7  {  8 WebResponse result = null;  9 try 10  { 11 WebRequest req = WebRequest.Create(new Uri(url)); 12 result = req.GetResponse(); 13 14 var receivedStream = result.GetResponseStream(); 15 var sr = new System.IO.StreamReader(receivedStream, GetEncoding(GetContentType(result.ContentType).FirstOrDefault().Key)); 16 return sr.ReadToEnd(); 17  } 18 catch (Exception ex) 19  { 20 return ex.Message; 21  } 22 finally 23  { 24 //ensure that network resources are not wasted 25 if (result != null) 26  result.Close(); 27  } 28 }

View Code

2>然后下载生成成word文档

代码语言:javascript
代码运行次数:0
复制
 1 //数据流的方式  2 public void test2()  3  {  4 var pageString = Linkin.Toolkit.Utility.Network.GetPage("http://www.baidu.com");  5 System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=result.doc");  6 System.Web.HttpContext.Current.Response.ContentType = "application/ms-word";  7 System.Web.HttpContext.Current.Response.Charset = "utf-8";  8 System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");  9  Response.Write(pageString); 10  Response.End(); 11 }

View Code

3>生成后的word文档因为没有样式,所有稍微丑了一些,有待优化,如图:

3 基于office com控件,在模板中添加书签的形式,将数据写入word模板中并保存

1>首先需要向工程中的“引用”加入Word类库的引用(如图)。我是Office 2007。其他版本可能略有不同。在COM里面。

2>用Word设计一个模板文档(后缀名*.doc)。(如图)

3>向模板中的需要显示动态内容的地方添加书签。具体方法是。光标落到欲插入内容的地方,选择菜单栏上的“插入”——〉“书签”。

在我的模板中添加完书签的样子如图

4>保存这个已完成的模板到任意路径,例如 D://template.doc

5>具体读取模板,添加数据,保存文件代码如下:

代码语言:javascript
代码运行次数:0
复制
 1 public static void ExportToWord()  2  {  3 object oMissing = System.Reflection.Missing.Value;  4 //创建一个Word应用程序实例   5 Word._Application oWord = new Word.Application();  6 //设置为不可见   7 oWord.Visible = false;  8 //模板文件地址,这里假设在X盘根目录   9 object oTemplate = "D://template.doc"; 10 //以模板为基础生成文档  11 Word._Document oDoc = oWord.Documents.Add(ref oTemplate, ref oMissing, ref oMissing, ref oMissing); 12 //声明书签数组  13 object[] oBookMark = new object[5]; 14 //赋值书签名  15 oBookMark[0] = "beizhu"; 16 oBookMark[1] = "xingming"; 17 oBookMark[2] = "xingbie"; 18 oBookMark[3] = "chushengriqi"; 19 oBookMark[4] = "jiguan"; 20 21 //赋值任意数据到书签的位置  22 oDoc.Bookmarks.get_Item(ref oBookMark[0]).Range.Text = "使用模板实现Word生成"; 23 oDoc.Bookmarks.get_Item(ref oBookMark[1]).Range.Text = "李四"; 24 oDoc.Bookmarks.get_Item(ref oBookMark[2]).Range.Text = "女"; 25 oDoc.Bookmarks.get_Item(ref oBookMark[3]).Range.Text = "1987.06.07"; 26 oDoc.Bookmarks.get_Item(ref oBookMark[4]).Range.Text = "夕阳无限好/r/n只是近黄昏"; 27 28 string savePath = "D:\\1.doc"; 29 30 31 object filename = savePath; 32 33 oDoc.SaveAs(ref filename, ref oMissing, ref oMissing, ref oMissing, 34 ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 35 ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 36 ref oMissing, ref oMissing); 37 oDoc.Close(ref oMissing, ref oMissing, ref oMissing); 38 //关闭word  39 oWord.Quit(ref oMissing, ref oMissing, ref oMissing); 40 }

View Code

6>到此,保存word文件成功,如图

4 基于WPS com控件,模板表格标志导出word文档,此方式和方式3比较相似

1>首先需要向工程中的“引用”加入wps类库的引用(如图)。

2>在本地任意路径下面创建模板,并在模板中需要添加数据的地方表明标签,例如:D:\\Resume.doc 如图

3>C#代码控制模板,并填充数据

代码语言:javascript
代码运行次数:0
复制
 1 //基于 wps com控件 表格标志 导出word  2 public void test4()  3  {  4  5 WPS.Application wps = null;  6 try  7  {  8 wps = new WPS.Application();  9  } 10 catch 11  { 12 13  } 14 ////获取当前项目的路径 15 //string path = AppDomain.CurrentDomain.BaseDirectory; 16 //WPS.Document doc = wps.Documents.Open(path + "Templetes\\Resume.doc", false, true); 17 WPS.Document doc = wps.Documents.Open("D:\\Resume.doc", false, true); 18 19 #region 基本信息 20 var titleTable = doc.Tables.Item(1); 21 titleTable.Cell(1, 2).Range.Text = titleTable.Cell(1, 2).Range.Text.Replace("{RealName}", "简历名称"); 22 titleTable.Cell(2, 2).Range.Text = titleTable.Cell(2, 2).Range.Text.Replace("{ExpectJobCategory}", "期望职位"); 23 titleTable.Cell(3, 2).Range.Text = titleTable.Cell(3, 2).Range.Text.Replace("{UpdateTime}", "更新时间"); 24 #endregion 25 26 27 string filename = System.DateTime.Now.Year.ToString() + System.DateTime.Now.Month.ToString() + System.DateTime.Now.Day.ToString() + 28 System.DateTime.Now.Hour.ToString() + System.DateTime.Now.Minute.ToString() + System.DateTime.Now.Second.ToString(); 29 string serverPath = @"D:\" + filename + ".doc"; 30  doc.SaveAs(serverPath, WPS.WdSaveFormat.wdFormatDocument); 31 32  doc.Close(WPS.WdSaveOptions.wdSaveChanges, WPS.WdOriginalFormat.wdWordDocument, WPS.WdRoutingSlipStatus.wdNotYetRouted); 33  wps.Quit(WPS.WdSaveOptions.wdSaveChanges, WPS.WdOriginalFormat.wdWordDocument, WPS.WdRoutingSlipStatus.wdNotYetRouted); 34 }

View Code

4>生成后的word文件 如图

5 这种方法相对以上都比较复杂,先保存地址,以待研究

http://www.cnblogs.com/kingteach/archive/2011/11/22/2258801.html

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166519.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 基于wps直接将页面信息下载成word文档
  • 2 用数据流的形式将页面下载成word文档
  • 3 基于office com控件,在模板中添加书签的形式,将数据写入word模板中并保存
  • 4 基于WPS com控件,模板表格标志导出word文档,此方式和方式3比较相似
  • 5 这种方法相对以上都比较复杂,先保存地址,以待研究
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档