html格式转换word_html嵌入word

html格式转换word_html嵌入word1基于wps直接将页面信息下载成word文档1publicvoidtest()2{34WPS.Applicationwps=null;5try6{7…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

html格式转换word_html嵌入word
html格式转换word_html嵌入word

 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:\.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页面输出内容

html格式转换word_html嵌入word
html格式转换word_html嵌入word

 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文档

html格式转换word_html嵌入word
html格式转换word_html嵌入word

 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文档因为没有样式,所有稍微丑了一些,有待优化,如图

     html格式转换word_html嵌入word

 

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

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

          html格式转换word_html嵌入word

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

          html格式转换word_html嵌入word

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

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

           html格式转换word_html嵌入word

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

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

html格式转换word_html嵌入word
html格式转换word_html嵌入word

 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文件成功,如图

         html格式转换word_html嵌入word

 

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

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

          html格式转换word_html嵌入word

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

        html格式转换word_html嵌入word

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

       

html格式转换word_html嵌入word
html格式转换word_html嵌入word

 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文件 如图

       html格式转换word_html嵌入word

 

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 如何保证docker2375端口的安全

    如何保证docker2375端口的安全情景再现:之前有很多朋友提过,当使用docker-maven-plugin打包SpringBoot应用的Docker镜像时,服务器需要开放2375端口。由于开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵、挖矿、CPU飙升这些情况都有发生,今天我们来聊聊如何解决这个问题。问题产生的原因首先我们要明白问题产生的原因,才能更好地解决问题!Docker为了实现集群管理,提供了远程管理的端口。DockerDaemon作为守护进程运行在后台,可以执行发送到管理端口上的Docker命令。当我们修改do

  • 加密狗android,Android系统加密狗的设计与实现

    加密狗android,Android系统加密狗的设计与实现摘要:随着IT产业的迅猛发展,软件作为IT产业中的一项重要产品,现在已经随着电脑进入千家万户,深入到用户生活中的每个地方。但是针对软件,有一个问题一直存在,那就是软件盗版的问题。随着软件影响范围的扩大,盗版软件带来的危害也是越发的严重。另外,智能手机也已经进入一个高速发展期,Android系统手机在智能手机市场中占据很大的一块份额。在这样的背景下,本文提出一种使用Android系统手机对软件进行…

  • 给Android程序员的一些面试建议「建议收藏」

    给Android程序员的一些面试建议「建议收藏」前言应大家的邀请,写一篇关于Android面试相关的博客,需要说明的是本文只针对Android应用开发,不针对rom开发以及逆向工程。我想面试对于程序员来说是很重要的一件事件,面试结果的好坏直接决定了能否进入某个公司以及以什么级别和待遇进入某个公司。我参加面试的经验并不多,但是以面试官的身份面试别人倒是有很多次,所以我可以结合这些经验来介绍下如何更好地把握一个面试。什么是合适的候选者在介绍如何面试之

  • Git入门级常用命令(1)

    Git入门级常用命令(1)

  • IOS开展:导航中添加多个button并加入左侧logo

    IOS开展:导航中添加多个button并加入左侧logo

  • 一致性哈希 哈希槽(哈希碰撞和哈希冲突)

    背景随着memcache和redis的出现,更多人认识到了一致性哈希。一致性哈希用于解决分布式缓存系统中的数据选择节点存储问题和数据选择节点读取问题以及在增删节点后减少数据缓存的消失范畴,防止雪崩的发生。哈希槽是在rediscluster集群方案中采用的,rediscluster集群没有采用一致性哈希方案,而是采用数据分片中的哈希槽来进行数据存储与读取的。一致性哈希一致性hash是一个0-2^32的闭合圆,(拥有2^23个桶空间,每个桶里面可以存储很多数据,可以理解为s3的存储桶)所

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号