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 ...
随机推荐
- NET项目中分页方法
/// <summary> /// 获得查询分页数据 /// </summary> public DataSet GetList(int pageSize, int pageI ...
- [java] volatile关键字对while循环条件提升问题补充
在java并发编程中,代码如下: volatile boolean asleep; ... while(!asleep){ countSomeSheep(); } 如果此处忘记将asleep变量设置为 ...
- 对vuex的理解
我用的vue安装了一个插件vuex插件 有3个 文件夹分别是actions(用于数据请求),getters(用于监听store),store(用于存储数据),
- 基本算法思想之穷举法(C++语言描述)
穷举算法(Exhaustive Attack method)是最简单的一种算法,其依赖于计算机的强大计算能力来穷尽每一种可能性,从而达到求解问题的目的.穷举算法效率不高,但是适应于一些没有规律可循的场 ...
- MySQL在linux下安装
mysql在linux下的安装 安装环境:系统是 centos6.5 1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloa ...
- EasyUI知识点汇总
combobox联动设置 $(document).ready(function() { $('#gdfsdl1').combobox({ onSelect: function(record){ $(' ...
- 新编html网页设计从入门到精通 (龙马工作室) pdf扫描版
新编html网页设计从入门到精通共分为21章,全面系统地讲解了html的发展历史及4.0版的新特性.基本概念.设计原则.文件结构.文件属性标记.用格式标记进行页面排版.使用图像装饰页面.超链接的使用. ...
- Loadrunner监控服务器资源
LoadRunner 加载监听服务器的步骤如下: 1.在 LoadRunner Controller 下,将工作面板切换到 Run状态,Available Graphs 栏 ,System Resou ...
- 在 windows 下搭建 IDEA + Spark 连接 Hive 的环境
为了开发测试方便,想直接在 IDEA 里运行 Spark 程序,可以连接 Hive,需不是打好包后,放到集群上去运行.主要配置工作如下: 1. 把集群环境中的 hive-core.xml, hdfs- ...
- 《OD面试》Java软件工程师
一.JVM自动内存管理机制 1. Java内存模型 1.1 由所有线程共享的数据区: 1.1.1 方法区(Method Area), Non-Heap(非堆) 用户存储已被虚拟机加载的类信息.常量.静 ...