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

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)


相关推荐

  • 最全ASCii 码表和说明

    最全ASCii 码表和说明最全ASCii 码表和说明

  • 变量,常量,静态变量存储的位置

    变量,常量,静态变量存储的位置常见的存储区域可分为:1、栈由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。2、堆由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,程序会一直占用内存,导致内存泄漏,在程序结束后,操作系统会自动回收。3、自由存储区由malloc等分配的内存

  • android studio报错Gradle project sync failed. Please fix your project and try again

    android studio报错Gradle project sync failed. Please fix your project and try againAndroidStudio导入项目或者新建项目想运行的时候可能会报错Gradleprojectsyncfailed.Pleasefixyourprojectandtryagain,原因应该是Gradle的一些东西没配好。这2个版本必须要保证本地有,而且一定要对得上。怎么知道本地有没有,下面2张图片展示他们各自的路径。(默认路径在安装AndroidS…

  • PyTorch建立resnet34和resnet101代码[通俗易懂]

    PyTorch建立resnet34和resnet101代码[通俗易懂]model.pyimporttorch.nnasnnimporttorchclassBasicBlock(nn.Module):expansion=1def__init__(self,in_channel,out_channel,stride=1,downsample=None):super(BasicBlock,self).__init__()self.conv1=nn.Conv2d(in_channels=

  • lede旁路由设置方法

    lede旁路由设置方法lede固件号:2.361.把网络–>接口里面wan口删除2.推荐新建lan口,把原来的lan停用3.新lan口配置:静态地址ipv4地址:主路由地址ipv4子网掩码:255.255.255.0ipv4网关:主路由地址使用自定义的DNS服务器:主路由地址关闭DHCP如果出现访问国内网站巨慢,慢到离谱那种请在旁路由执行以下代码iptables-tnat-IPOSTROUTING-jMASQUERADE并在网络—>防火墙中勾选丢弃无用数据包…

  • 解决eclipse乱码问题[通俗易懂]

    解决eclipse乱码问题[通俗易懂]本文章主要解决eclipse工程区乱码问题。

发表回复

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

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