aspose.word使用简单方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aspose.word使用简单方法相关的知识,希望对你有一定的参考价值。

概念介绍

使用aspose生成word报表步骤:

  1. 加载word模板
  2. 提供数据源
  3. 填充

加载模板

提供了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使用简单方法的主要内容,如果未能解决你的问题,请参考以下文章

aspose.word 把Word转成图片时,格式变了

利用Aspose.Word控件实现Word文档的操作

黄聪:利用Aspose.Word控件实现Word文档的操作(转)

关于ASPOSE.WORD使用上的一个小问题

有没有简单一点的Java库,用来生成word文档

aspose.word 怎么把word里的章节分别取出来