aspose.word使用简单方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aspose.word使用简单方法相关的知识,希望对你有一定的参考价值。
概念介绍
使用aspose生成word报表步骤:
- 加载word模板
- 提供数据源
- 填充
加载模板
提供了4种重载方法
1
2
3
4
5
|
public Document(); public Document(Stream stream); public Document( string fileName); public Document(Stream stream, LoadOptions loadOptions); public Document( string fileName, LoadOptions loadOptions); |
模板制作
aspose在word模板中使用了域(MergeField),一个域相当于一个占位符。域,可以从菜单 插入->文档部件中定位选择。
数据填充
目前有两种情况:基本信息和列表。
基本信息:基本属性,列表对应循环的数据结构,如DataTable.
对于列表,使用DataTable进行填充。
模板的制作:
表格以关键字TableStart开头,TableEnd结束。关键字后加DataTable表名称。e.g.TableStart:tableName
表头中间,是具体字段的名称。
序号 | 姓名 | 性别 | 年龄 |
<TableStart:Name><<Index>> | <<Name>> | <<Sex>> | <<Age>><<TableEnd:Name>> |
Document doc = new Document(Server.MapPath("~\\\\templet") + "\\\\" + name); doc.MailMerge.ExecuteWithRegions(DataTable)
具体字段
有两种方式可以实现:
方法一、
1
2
3
|
DocumentBuilder builder = new DocumentBuilder(doc); builder.MoveToMergeField(MergeFiled Name); builder.Write(value; |
这种方式,一次填充一个数据。但一个域字段可以多次使用,并可以一次填充。
优点,可以灵活定制。如果要想一次替换多个域字段,稍加改动同样可以实现。
DocumentBuilder builder = new DocumentBuilder(doc); while(builder.MoveToMergeField(MergeFiled Name)) { builder.Write(value; }
方法二、
doc.MailMerge.Execute(fieldNames, fieldValues);
在具体开发过程中,通常选择Entity作为数据源。可通过反射获取数据。
如何获取域字段
1
|
doc.MailMerge.GetFieldNames() |
方法返回的书string[]
以上是关于aspose.word使用简单方法的主要内容,如果未能解决你的问题,请参考以下文章