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 ...
随机推荐
- LAMP 2.0Apache日志切割
每次访问网站就会产生若干条日志,当然前提是已经配置了日志. 配置日志的文件在 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 把注释掉的这两行打 ...
- maven spring3.2.5
出现的情形: 开发环境: spring3.2.5 + springmvc +spirngDATA +maven 一. 偶然的spring Junit4测试 加载applicationContext.x ...
- Java探索之旅(14)——文本I/O与读写
1文件类File ❶封装文件或路径的属性.不包括创建和读写文件操作.File实例并不会实际创建文件.不论文件存在与否,可以创建任意文件名的实例.两种实例创建方式如下: ...
- C++经典题目:有n个整数,使前面各数顺序向后移动m个位置
问题描述: 有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前m个数. 程序代码: #include<iostream> #define MAXLEN 200 using na ...
- 9、IPA通路分析相关网页教程
IPA FAQ: http://ingenuity.force.com/ipa/IPATutorials# ####有各种相关教程和帮助文件. IPA 分析结果展示: http://www.lucid ...
- AT指令集
通用指令 at+cala 设置警报日期和时间 at+cgmi 厂家认证请求,返回模块厂家信 at+cgmm 模式认证请求,返回模块使用频段 at+cgmr 修正认证请求,返回软件版本 at+cg ...
- VSS配置
http://www.cnblogs.com/FreeDong/articles/2193151.html
- scrapy-redis源码解读之发送POST请求
1 引言 这段时间在研究美团爬虫,用的是scrapy-redis分布式爬虫框架,奈何scrapy-redis与scrapy框架不同,默认只发送GET请求,换句话说,不能直接发送POST请求,而美团的数 ...
- PHP连接 redis
<?php //连接本地的 Redis 服务 $redis = new Redis(); //连接redis 地址 端口 连接超时时间 连接成功返回true 失败返回false $redis-& ...
- [Django笔记] django结构分析
看了一段时间django官方文档,先把自己理解的django目录结构记录一下 目录结构 一个成熟的django项目的结构大致如下: /project/ |-- project/ |-- setting ...