WPF使用Aspose.Words导出Word文档
一、创建Word文档模板
- 分析需要导出的word文档,将固定的内容和由程序生成的内容分开;
- 创建一个word(例如:Template.doc)文档,将固定的内容按照一定的格式写入当前文档中;
- 打开Template.doc在需要动态插入内容的地方插入书签;
二、创建所需要的对象
Aspose.Words.Document doc = new Aspose.Words.Document("Word文档模板的路径");
Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);
三、指定书签插入文字
builder.MoveToBookmark("word模板中书签的名称");
builder.Font.Size = ;
builder.Font.Name = "黑体";
builder.Write("文字内容");
四、指定书签插入表格
//插入一个两行三列的table
builder.MoveToBookmark("word模板中书签的名称");
builder.StartTable(); //第一行第一列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第一行第一列"); //第一行第二列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第一行第二列"); //第一行第三列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第一行第三列"); builder.EndRow(); //第二行第一列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第二行第一列"); //第二行第二列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第二行第二列"); //第二行第三列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第二行第三列"); builder.EndRow(); builder.EndTable();
五、单元格合并
//将第一行第三列和第二行第三列进行纵向合并 并将文本显示为"这是纵向合并列"
builder.MoveToBookmark("word模板中书签的名称");
builder.StartTable(); //第一行第一列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第一行第一列"); //第一行第二列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第一行第二列"); //第一行第三列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.CellFormat.HorizontalMerge=Aspose.Words.Tables.CellMerge.None;
//设置纵向合并
builder.CellFormat.VerticalMerge=Aspose.Words.Tables.CellMerge.First;
builder.Write("这是纵向合并列"); builder.EndRow(); //第二行第一列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第二行第一列"); //第二行第二列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.Write("第二行第二列"); //第二行第三列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.CellFormat.HorizontalMerge=Aspose.Words.Tables.CellMerge.None;
//设置纵向合并(与第一行第三列合并)
builder.CellFormat.VerticalMerge=Aspose.Words.Tables.CellMerge.Previous; builder.EndRow(); builder.EndTable();
如果有第三行同时第三行的第三列也需要和第一行、第二行的第三列进行合并应该怎么处理?
//第三行第三列
builder.InsertCell();
builder.Font.Size = 10.5;
builder.Font.Name = "宋体(中文正文)";
builder.CellFormat.Width = 100.0;
builder.CellFormat.HorizontalMerge=Aspose.Words.Tables.CellMerge.None;
//设置纵向合并(与第一行、第二行第三列合并)
builder.CellFormat.VerticalMerge=Aspose.Words.Tables.CellMerge.Previous;
横向合并与纵向合并类似只是横向合并需要设置HorizontalMerge属性。
六、其他的一些属性和方法
//插入段落
builder.InsertParagraph();
//设置单元格左边边框的样式和宽度(上、右、下类似)
builder.CellFormat.Borders.Left.LineStyle = Aspose.Words.LineStyle.Single;
builder.CellFormat.Borders.Left.LineWidth = 1.5;
//设置文字居中
builder.ParagraphFormat.Alignment = Aspose.Words.ParagraphAlignment.Center;
//设置文字垂直居中
builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;
//是否适应文本(此属性为true如果文本长度大于单元格长度则文本会在单元格内自动换行。此属性为false如果文本长度大于单元格长度则会将当前单元格撑大)
builder.CellFormat.FitText = true;
WPF使用Aspose.Words导出Word文档的更多相关文章
- C# 导出word文档及批量导出word文档(1)
这里用到了两个dll,一个是aspose.word.dll,另外一个是ICSharpCode.SharpZipLib.dll,ICSharpCode.SharpZipLib.dll是用于批量 ...
- .NET通过调用Office组件导出Word文档
.NET通过调用Office组件导出Word文档 最近做项目需要实现一个客户端下载word表格的功能,该功能是用户点击"下载表格",服务端将该用户的数据查询出来并生成数据到Word ...
- C# 导出word文档及批量导出word文档(4)
接下来是批量导出word文档和批量打印word文件,批量导出word文档和批量打印word文件的思路差不多,只是批量打印不用打包压缩文件,而是把所有文件合成一个word,然后通过js来调用 ...
- C#导出Word文档开源组件DocX
1.帮助文档,这东西找了很久,而且它版本很旧,还是英文,W8.1系统上打不开 http://download.csdn.net/detail/zuofangyouyuan/7673573 2.开源网址 ...
- freemarker导出word文档——WordXML格式解析
前不久,公司一个项目需要实现导出文档的功能,之前是一个同事在做,做了3个星期,终于完成了,但是在项目上线之后却发现导出的文档有问题,此时,这个同事已经离职,我自然成为接班者,要把导出功能实现,但是我看 ...
- 自动生成并导出word文档
今天很荣幸又破解一现实难题:自动生成并导出word文档 先看页面效果: word效果: 代码: 先搭建struts2项目 创建action,并在struts.xml完成注册 <?xml vers ...
- Java 用Freemarker完美导出word文档(带图片)
Java 用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...
- freemarker导出word文档
使用freemarker导出word文档的过程 **************************************************************************** ...
- Aspose.Words给word文档加水印
需求:在一些重要的Word文档需要打印时,添加水印以明出处. 方案:使用Aspose组件给word文档 代码:干货如下 /// <summary> /// Inserts a waterm ...
随机推荐
- Java探索之旅(17)——多线程(1)
1.多线程 1.1线程 线程是程序运行的基本执行单元.指的是一段相对独立的代码,执行指定的计算或操作.多操作系统执行一个程序时会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被 ...
- PullToRefresh------ListView的使用
第一步 :写出布局文件的设置 <com.handmark.pulltorefresh.library.PullToRefreshListView android:id="@+id/pu ...
- koa1创建项目
1.一定要全局安装(koa1.2和koa2都己经支持)npm install koa-generator -g 2.koa1.2 生成一个test项目,切到test目录并下载依赖 koa testcd ...
- 使用 Node.js 实现简单的 Webhook
距离 Node.js 这个东西出来已经过了好久了,感觉现在的前端如果不会点 Node.js 就有点太落后于时代啦.我接触它是从去年暑假开始的,当时在写一个比较神奇的东西,就顺便接触了一下.虽然网传 n ...
- SDK和JDK的区别
刚开始工作时,还以为两者是一样的,只是版本换新给了个新名字罢了.最近又关注到这个问题,才发现自己大错特错,故整理了下分享给大家,共勉! jdk,是Java开发工具包,主要用于编写Java程序:也就是说 ...
- Windows使用Github
首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中. git config --global user.name "你的名 ...
- Algorithms - Fibonacci Number
斐波那契数列(Fibonacci Number)从数学的角度是以递归的方法定义的: \(F_0 = 0\) \(F_1 = 1\) \(F_n = F_{n-1} + F_{n-2}\) (\(n \ ...
- vue入门(二)----模板与计算属性
其实这部分内容我也是参考的官网:http://cn.vuejs.org/v2/guide/syntax.html,但是我还是想把自己不懂的知识记录一下,加深印象,也可以帮助自己以后查阅.所谓勤能补拙. ...
- fs-hasher工具介绍
工具列表 hf-stat hf-simdex fs-hasher hf-stat工具 使用方法 以-f参数为例 Usage: ./hf-stat -f hashfile 参数用途 -f : 显示.ha ...
- C++ List的用法(转载)
Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢. assign() 给list赋值 back() 返回最后一个元素 begin ...