1.生成word代码
  1. /// <summary>
  2. /// 生成word文档
  3. /// </summary>
  4. /// <param name="tempPath">模板绝对路径</param>
  5. /// <param name="savePath">模板保存路径(包含文件名称 后缀必须是docx)</param>
  6. /// <param name="hsHeads">页眉数据</param>
  7. /// <param name="hsFoots">页脚数据</param>
  8. /// <param name="hsBookMark">书签数据</param>
  9. /// <param name="dtBody">文档内容</param>
  10. public static void SaveTemplate(string tempPath,string savePath,Hashtable hsHeads,Hashtable hsFoots,Hashtable hsBookMark,DataTable dtBody){
  11. using (DocX document = DocX.Load(tempPath))
  12. {
  13. #region 生成页眉
  14. document.AddHeaders(); //添加所有页眉
  15. Headers heads = document.Headers; //获取该文档所有的页脚
  16. Header hfirst = heads.first;
  17. Header head1 = heads.even;
  18. Header head2 = heads.odd;
  19.  
  20. //添加logo
  21. Paragraph p = head1.InsertParagraph("", false);
  22. System.Net.WebRequest webreq = System.Net.WebRequest.Create("http://www.bc.ccoo.cn/logo/logo.gif");
  23. System.Net.WebResponse webres = webreq.GetResponse();
  24. Stream stream = webres.GetResponseStream();
  25. MemoryStream stmMemory = new MemoryStream();
  26. System.Drawing.Image myimg = System.Drawing.Image.FromStream(stream);
  27. myimg.Save(stmMemory, myimg.RawFormat); // 保存你的图片到memorystream
  28. stmMemory.Seek(, SeekOrigin.Begin);
  29. Novacode.Image img = document.AddImage(stmMemory);
  30. stream.Close();
  31.  
  32. //将图像插入到段落后面
  33. Picture pic = img.CreatePicture();
  34.  
  35. //选择图像,并修改图像尺寸
  36. pic.Rotation = ;
  37. pic.Width = ;
  38. pic.Height = ;
  39.  
  40. //设置图片形状,并水平翻转图片
  41. pic.SetPictureShape(BasicShapes.cube);
  42. pic.FlipHorizontal = false;
  43. p.InsertPicture(pic, );
  44. p.InsertText(" 真诚为您服务");
  45. p.AppendLine();
  46. Paragraph ph2 = head2.InsertParagraph("", false);
  47.  
  48. ph2.InsertPicture(pic, );
  49. ph2.InsertText(" 真诚为您服务");
  50. ph2.AppendLine();
  51.  
  52. Paragraph phfirst = hfirst.InsertParagraph("", false);
  53.  
  54. phfirst.InsertPicture(pic, );
  55. phfirst.UnderlineColor(System.Drawing.Color.Yellow);
  56. phfirst.InsertText(" 真诚为您服务");
  57. phfirst.AppendLine();
  58. #endregion
  59.  
  60. #region 生成文档中内容
  61.  
  62. foreach (Paragraph pbody in document.Paragraphs)
  63. {
  64. var bookmarks= pbody.GetBookmarks();
  65. foreach (Bookmark item in bookmarks)
  66. {
  67. switch (item.Name)
  68. {
  69. case "MerchantName": //商家名称
  70. item.Paragraph.ReplaceText("{MerchantName}", hsBookMark["MerchantName"].ToString());
  71. break;
  72. case "OperatingCommissioner"://运营专员
  73. item.Paragraph.ReplaceText("{OperatingCommissioner}", hsBookMark["OperatingCommissioner"].ToString());
  74. break;
  75. case "OperatingTime"://运营时间
  76. item.Paragraph.ReplaceText("{OperatingTime}", hsBookMark["OperatingTime"].ToString());
  77. break;
  78. case "IPNUM"://IP流量
  79. item.Paragraph.ReplaceText("{IPNUM}", ""+hsBookMark["OperatingTime"].ToString());
  80. break;
  81. case "PVNUM"://PV
  82. item.Paragraph.ReplaceText("{PVNUM}", "" + hsBookMark["OperatingTime"].ToString());
  83. break;
  84. case "FKNUM"://feek
  85. item.Paragraph.ReplaceText("{FKNUM}", "" + hsBookMark["OperatingTime"].ToString());
  86. break; }
  87. }
  88. }
  89. List<Table> table = document.Tables;
  90. Row newRow = table[].InsertRow();
  91. newRow.Cells[].Paragraphs[].InsertText("&&&&&&&hhhHHHH00000", false);
  92. newRow.Cells[].Paragraphs[].InsertText("&&&&&&&hhhHHHH111111111111",false);
  93.  
  94. #endregion
  95.  
  96. #region 生成页脚
  97. document.AddFooters();//添加所有的页脚
  98. Footers footers = document.Footers; //获取该文档所有的页脚
  99. //获取文档第一页的页脚
  100. Footer first = footers.first;
  101.  
  102. //获取奇数页的页脚
  103. Footer odd = footers.odd;
  104. ////设置不同页使用不同的页脚
  105. document.DifferentFirstPage = true;
  106. document.DifferentOddAndEvenPages = true;
  107. //设置页脚的内容
  108. Paragraph pf = first.InsertParagraph();
  109. pf.Append("页脚内容替换成你的页脚内容");
  110.  
  111. Paragraph p2 = footers.even.InsertParagraph();
  112. p2.Append("页脚内容替换成你的页脚内容");
  113.  
  114. Paragraph p3 = footers.odd.InsertParagraph();
  115. p3.Append("页脚内容替换成你的页脚内容");
  116. #endregion
  117.  
  118. document.SaveAs(savePath);
  119. }
  120. }

2.docx下载

Docx 生成word文档的更多相关文章

  1. Docx 生成word文档二

    /// <summary> /// 生产word 文档 /// </summary> public class GenerateWord { /// <summary&g ...

  2. Aspose.Words简单生成word文档

    Aspose.Words简单生成word文档 Aspose.Words.Document doc = new Aspose.Words.Document(); Aspose.Words.Documen ...

  3. 将HTML导出生成word文档

    前言: 项目开发中遇到了需要将HTML页面的内容导出为一个word文档,所以有了这边随笔. 当然,项目开发又时间有点紧迫,第一时间想到的是用插件,所以百度了下.下面就介绍两个导出word文档的方法. ...

  4. POI生成word文档完整案例及讲解

    一,网上的API讲解 其实POI的生成Word文档的规则就是先把获取到的数据转成xml格式的数据,然后通过xpath解析表单式的应用取值,判断等等,然后在把取到的值放到word文档中,最后在输出来. ...

  5. PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...

  6. PoiDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 使用Poi实现android中根据模板文件生成Word文档的功能.这里的模板文件是doc文件.如果模板文件是docx文件的话,请阅读 ...

  7. Android根据word模板文档将表单数据生成word文档的方案整理

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 尝试的方案包括以下几种: freemarker 只能在java项目上运行,无法在Android项目上运行: 参考资料:<Fre ...

  8. POI 生成 word 文档 简单版(包括文字、表格、图片、字体样式设置等)

      POI 生成word 文档 一般有两种方法: ① word模板 生成word 文档 : ② 写代码直接生成 word 文档: 我这里演示的是第二种方法,即写代码生成 word文档,不多说废话,直接 ...

  9. 使用PHPWord生成word文档

    有时我们需要把网页内容保存为Word文档格式,以供其他人员查看和编辑.PHPWord是一个用纯PHP编写的库,使用PHPWord可以轻松处理word文档内容,生成你想要的word文档. 下载源码 安装 ...

随机推荐

  1. 一个上午,勉强记住了几种不同语言编译PE的启动函数

    VC:启动函数最乱,三大函数都在后面.前面8个PUSH DELPHI7:启动函数最整洁,2.3.4.2,形式排队 VB:启动函数最好记,12个0.... 汇编:三大函数距离最紧凑,除VB外,启动函数最 ...

  2. spring的mvc对于页面日期格式进行传值到后台

    对于spring的mvc 日期格式从页面传入后台是个问题.string类型和整形都能友好传入.但是对于日期类型date却不能传入.回报403参数不对的错误. 看例子: @RequestMapping( ...

  3. MyEclipse如何使用debug模式

    知道如何打断点,如何进入debug与debug模式的视图,还有工具栏的使用和快捷键的使用 https://blog.csdn.net/menglanyingfei/article/details/55 ...

  4. CF1158F Density of subarrays

    CF1158F Density of subarrays 首先可以发现,有值的p最大是n/c 对于密度为p,每个数至少出现c次,且其实是每出现c个数,就分成一段,这样贪心就得到了p %ywy n/c ...

  5. 菜鸟nginx源码剖析数据结构篇(五) 基数树 ngx_radix_tree_t[转]

    菜鸟nginx源码剖析数据结构篇(五) 基数树 ngx_radix_tree_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blo ...

  6. 使用async读取异步数据

    使用传统方式读取异步数据 const fs = require('fs') fs.readFile('readme.txt', function (err, data) { console.log(d ...

  7. wpf中在style的template寻找ControlTemplate和DataTemplate的控件

    一.WPF中的两棵树 WPF中每个控件的Template都是由ControlTemplate构成,ControlTemplate包含了构成该控件的各种子控件,这些子控件就构成了VisualTree:而 ...

  8. kafka comsumer

    kafka的顺序消费只保证在同一个partition中而已

  9. 不同版本springboot端点开启方法

    1.X版本与2.X区别:2.X大部分路径要加“/actuator” 端点列表(注意最后一栏Sensitive为true的端点如果不设置为false将不可访问): https://docs.spring ...

  10. Spring Cloud各组件

    讲的不错:http://www.ityouknow.com/springcloud/2017/05/16/springcloud-hystrix.html Spring Cloud技术应用从场景上可以 ...