Docx 生成word文档
/// <summary>
/// 生成word文档
/// </summary>
/// <param name="tempPath">模板绝对路径</param>
/// <param name="savePath">模板保存路径(包含文件名称 后缀必须是docx)</param>
/// <param name="hsHeads">页眉数据</param>
/// <param name="hsFoots">页脚数据</param>
/// <param name="hsBookMark">书签数据</param>
/// <param name="dtBody">文档内容</param>
public static void SaveTemplate(string tempPath,string savePath,Hashtable hsHeads,Hashtable hsFoots,Hashtable hsBookMark,DataTable dtBody){
using (DocX document = DocX.Load(tempPath))
{
#region 生成页眉
document.AddHeaders(); //添加所有页眉
Headers heads = document.Headers; //获取该文档所有的页脚
Header hfirst = heads.first;
Header head1 = heads.even;
Header head2 = heads.odd; //添加logo
Paragraph p = head1.InsertParagraph("", false);
System.Net.WebRequest webreq = System.Net.WebRequest.Create("http://www.bc.ccoo.cn/logo/logo.gif");
System.Net.WebResponse webres = webreq.GetResponse();
Stream stream = webres.GetResponseStream();
MemoryStream stmMemory = new MemoryStream();
System.Drawing.Image myimg = System.Drawing.Image.FromStream(stream);
myimg.Save(stmMemory, myimg.RawFormat); // 保存你的图片到memorystream
stmMemory.Seek(, SeekOrigin.Begin);
Novacode.Image img = document.AddImage(stmMemory);
stream.Close(); //将图像插入到段落后面
Picture pic = img.CreatePicture(); //选择图像,并修改图像尺寸
pic.Rotation = ;
pic.Width = ;
pic.Height = ; //设置图片形状,并水平翻转图片
pic.SetPictureShape(BasicShapes.cube);
pic.FlipHorizontal = false;
p.InsertPicture(pic, );
p.InsertText(" 真诚为您服务");
p.AppendLine();
Paragraph ph2 = head2.InsertParagraph("", false); ph2.InsertPicture(pic, );
ph2.InsertText(" 真诚为您服务");
ph2.AppendLine(); Paragraph phfirst = hfirst.InsertParagraph("", false); phfirst.InsertPicture(pic, );
phfirst.UnderlineColor(System.Drawing.Color.Yellow);
phfirst.InsertText(" 真诚为您服务");
phfirst.AppendLine();
#endregion #region 生成文档中内容 foreach (Paragraph pbody in document.Paragraphs)
{
var bookmarks= pbody.GetBookmarks();
foreach (Bookmark item in bookmarks)
{
switch (item.Name)
{
case "MerchantName": //商家名称
item.Paragraph.ReplaceText("{MerchantName}", hsBookMark["MerchantName"].ToString());
break;
case "OperatingCommissioner"://运营专员
item.Paragraph.ReplaceText("{OperatingCommissioner}", hsBookMark["OperatingCommissioner"].ToString());
break;
case "OperatingTime"://运营时间
item.Paragraph.ReplaceText("{OperatingTime}", hsBookMark["OperatingTime"].ToString());
break;
case "IPNUM"://IP流量
item.Paragraph.ReplaceText("{IPNUM}", ""+hsBookMark["OperatingTime"].ToString());
break;
case "PVNUM"://PV
item.Paragraph.ReplaceText("{PVNUM}", "" + hsBookMark["OperatingTime"].ToString());
break;
case "FKNUM"://feek
item.Paragraph.ReplaceText("{FKNUM}", "" + hsBookMark["OperatingTime"].ToString());
break; }
}
}
List<Table> table = document.Tables;
Row newRow = table[].InsertRow();
newRow.Cells[].Paragraphs[].InsertText("&&&&&&&hhhHHHH00000", false);
newRow.Cells[].Paragraphs[].InsertText("&&&&&&&hhhHHHH111111111111",false); #endregion #region 生成页脚
document.AddFooters();//添加所有的页脚
Footers footers = document.Footers; //获取该文档所有的页脚
//获取文档第一页的页脚
Footer first = footers.first; //获取奇数页的页脚
Footer odd = footers.odd;
////设置不同页使用不同的页脚
document.DifferentFirstPage = true;
document.DifferentOddAndEvenPages = true;
//设置页脚的内容
Paragraph pf = first.InsertParagraph();
pf.Append("页脚内容替换成你的页脚内容"); Paragraph p2 = footers.even.InsertParagraph();
p2.Append("页脚内容替换成你的页脚内容"); Paragraph p3 = footers.odd.InsertParagraph();
p3.Append("页脚内容替换成你的页脚内容");
#endregion document.SaveAs(savePath);
}
}
Docx 生成word文档的更多相关文章
- Docx 生成word文档二
/// <summary> /// 生产word 文档 /// </summary> public class GenerateWord { /// <summary&g ...
- Aspose.Words简单生成word文档
Aspose.Words简单生成word文档 Aspose.Words.Document doc = new Aspose.Words.Document(); Aspose.Words.Documen ...
- 将HTML导出生成word文档
前言: 项目开发中遇到了需要将HTML页面的内容导出为一个word文档,所以有了这边随笔. 当然,项目开发又时间有点紧迫,第一时间想到的是用插件,所以百度了下.下面就介绍两个导出word文档的方法. ...
- POI生成word文档完整案例及讲解
一,网上的API讲解 其实POI的生成Word文档的规则就是先把获取到的数据转成xml格式的数据,然后通过xpath解析表单式的应用取值,判断等等,然后在把取到的值放到word文档中,最后在输出来. ...
- PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...
- PoiDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 使用Poi实现android中根据模板文件生成Word文档的功能.这里的模板文件是doc文件.如果模板文件是docx文件的话,请阅读 ...
- Android根据word模板文档将表单数据生成word文档的方案整理
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 尝试的方案包括以下几种: freemarker 只能在java项目上运行,无法在Android项目上运行: 参考资料:<Fre ...
- POI 生成 word 文档 简单版(包括文字、表格、图片、字体样式设置等)
POI 生成word 文档 一般有两种方法: ① word模板 生成word 文档 : ② 写代码直接生成 word 文档: 我这里演示的是第二种方法,即写代码生成 word文档,不多说废话,直接 ...
- 使用PHPWord生成word文档
有时我们需要把网页内容保存为Word文档格式,以供其他人员查看和编辑.PHPWord是一个用纯PHP编写的库,使用PHPWord可以轻松处理word文档内容,生成你想要的word文档. 下载源码 安装 ...
随机推荐
- wpf Rectangle
<Rectagle Width="100" Height="100" Stroke="Black" Fill="Blue&q ...
- SUMMARY | JAVA中的数据结构
String String类是不可修改的,创建需要修改的字符串需要使用StringBuffer(线程同步,安全性更高)或者StringBuilder(线程非同步,速度更快). 可以用“+”连接Stri ...
- db.Database.SqlQuery完成分页封装
调用代码: string sql = @"SELECT a.Id ,c.Title,a.Content,a.Status,b.ReportSum FROM dbo.Comment AS a ...
- Matrix Power Series
Matrix Power Series 给出矩阵A,求矩阵\(A+A^2+...+A^k\)各个元素\(mod\ yyb\)的值,\(n\leq 30,k\leq 10^9,yyb\leq 10^4\ ...
- python中用json存储列表字典等文件操作
JSON字符串用json.dumps, json.loads JSON文件名用json.dump, json.load 由于需要在脚本重启后依旧能够记住之前所使用的列表内容, 故采用json存储列表文 ...
- C++萃取技术的一个简单初探
首先本文并不是讲解C++萃取技术,关于C++的萃取技术网上有很多文章,推荐http://www.cppblog.com/woaidongmao/archive/2008/11/09/66387.htm ...
- python下使用ElasticSearch
一 什么是 ElasticSearch Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.当然 Elas ...
- C#可扩展编程之MEF(五):MEF高级进阶
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较 ...
- Java笔记 - 异常机制
JAVA异常机制是Java提供的用于处理程序在运行期可能出现的异常事件(如数组下标越界.文件不存在等)的一种机制,使程序不会因为 异常的发生 而 阻断或产生不可预见的结果 .而且还可以将逻辑代码与错误 ...
- Android基础控件SeekBar拖动条的使用
1.简介 SeekBar继承ProgressBar,相关属性和三种不同状态下的触发方法: <!--<SeekBar--> <!--android:layout_width=&q ...