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 ...
随机推荐
- ObservableCollection和List的区别总结
一.继承的类和接口,还有它们的方法不同 1)ObservableCollection比较简单,继承了Collection, INotifyCollectionChanged, INotifyPrope ...
- qboimathtest1 t1 魔法串
题目 小 N 最近在沉迷数学问题. 对于一个数字串 S,如果可以将它划分成两个数字 A.B,满足: 1. S=AB. 2. A.B 均不包含前导 0. 3. B 是 A 的倍数,且B / A是完全立方 ...
- 阶段3-团队合作\项目-网络安全传输系统\sprint1-传输子系统设计\第3课-加密传输优化
对之前的传输系统进行加密,使之成为加密的网络传输系统 客户端编程模型 通过以上模型对传统的TCP传输模型进行优化 首先完成初始化工作,它是要在创建socket之前完成 主要是以上四个函数的实现,那么这 ...
- HDU 5980 Find Small A (水题)
题意:众所周知,字符 'a' 的ASCII码为97.现在,找出给定数组中出现了多少次 'a' .注意,此处的数字为计算机中的32位整数.这表示, 1个数字由四个字符组成(一个字符由8位二进制数组成). ...
- Unity 分场景打包
分场景打包步骤:导入unity中AB包后 1: 指定场景 2: 指定abname 3: 指定objinabname 4: 协同 5: 委托 void string unity 先引入命名空间 ...
- Asp.Net 遍历 循环 显示所有COOKIS,SESSION,Applocation
在C#中循环显示SESSIOn: Response.Write("<br>Session的所有值:<br>"); foreach (string obj i ...
- Educational Codeforces Round 57 (Rated for Div. 2)D(动态规划)
#include<bits/stdc++.h>using namespace std;char s[100007];long long a[100007];long long dp[100 ...
- 定时器详解和应用、js加载阻塞、css加载阻塞
1.setTimeout().setInterval()详解和应用 1.1 详解: setTimeout.setInterval执行时机 1.2 存在问题: setInterval重复定时器可能存在的 ...
- 51nod1043(数位dp)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1043 题意:中文题诶- 思路:数位dp 我们用dp[i][j ...
- Docker容器构建过程的安全性分析
来源:嘶吼专业版 ID:Pro4hou DevOps概念的流行跟近些年微服务架构的兴起有很大关系,DevOps是Dev(Development)和Ops(Operations)的结合,Dev负责开发, ...