概念介绍

使用aspose生成word报表步骤:

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

加载模板

提供了4种重载方法

  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)

具体字段

有两种方式可以实现:

方法一、

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作为数据源。可通过反射获取数据。

如何获取域字段

doc.MailMerge.GetFieldNames()

方法返回的书string[]

aspose.word使用简单方法的更多相关文章

  1. aspose.word 使用简单方法

    aspose.word使用简单方法 概念介绍 使用aspose生成word报表步骤: 加载word模板 提供数据源 填充 加载模板 提供了4种重载方法 1 2 3 4 5 public Documen ...

  2. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

  3. Aspose Word模板使用总结

    Aspose Word模板使用总结 1.创建word模版,使用MergeFeild绑定数据     新建一个Word文档,命名为Template.doc     注意:这里并不是输入"< ...

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

    Aspose系列的控件,功能都挺好,之前一直在我的Winform开发框架中用Aspose.Cell来做报表输出,可以实现多样化的报表设计及输出,由于一般输出的内容比较正规化或者多数是表格居多,所以一般 ...

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

    撰写人:伍华聪  http://www.iqidi.com  Aspose系列的控件,功能都挺好,之前一直在我的Winform开发框架中用Aspose.Cell来做报表输出,可以实现多样化的报表设计及 ...

  6. Aspose.Word邮件合并之自定义数据源

    Aspose.Word在进行邮件合并时,默认的几个重载方法对Database支持比较友好,但是也可以通过自定义数据源来实现从集合或者对象中返回数据进行邮件合并. 自定义数据源主要是通过实现IMailM ...

  7. 通过Aspose.Word和ZXING生成复杂的WORD表格

    1.前言 这是我之前做的一个项目中要求的功能模块,它的需求是生成一个WORD文档,需要每页一个表格并且表格中需要插入文字.条形码和二维码等信息,页数可控制.具体的效果如下图所示: 可以看到有以下几点是 ...

  8. Aspose.Word 的常见使用(2018-12-26 更新版)

    Aspose.Word 的常见使用 起因 因项目需要,而且使用html转Word的时候,样式不兼容问题,于是只能使用Aspose.Word通过代码生成.下面是通过DocumentBuilder来设计W ...

  9. Xcode7使用插件的简单方法&&以及怎样下载到更早版本的Xcode

    Xcode7自2015年9上架以来也有段时间了, 使用Xcode7以及Xcode7.1\Xcode7.2的小伙伴会发现像VVDocumenter-Xcode\KSImageNamed-Xcode\HO ...

随机推荐

  1. ThinkPHP 单字母函数整理

    TP所有单独的函数,除了两个用来生成项目的buildAppDir之类的,其余都在框架目录/Common/functions.php这个文件里. A函数(基本是Action的简写) A函数是用来实例化我 ...

  2. Spark源码分析(二)-SparkContext创建

    原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3872785.html  SparkContext是应用启动时创建的Spark上下文对象,是一个重要的入口 ...

  3. GetWindowText和GetDlgItemText的区别

    二者使用方法相同,入口点不一样. 举例: CString str;  /* if (GetDlgItem(IDC_Number1)->GetWindowText(str),str==" ...

  4. python FTP上传和下载文件

    1. 连接FTP server import ftplib ftp = ftplib.FTP(ftpserver, user, passwd) 等同于 import ftplib ftp = ftpl ...

  5. haproxy.cfg

    # this config needs haproxy-1.1.28 or haproxy-1.2.1 global log 127.0.0.1 local0 log 127.0.0.1 local1 ...

  6. Java-J2SE学习笔记-线程-生产者消费者问题

    一.概述 模拟生产者消费者问题 二.代码 1.Consumer.java 2.Producer.java 3.SyncStack.java 4.Test.java 1.Consumer.java pa ...

  7. 【总结】java命令解析以及编译器,虚拟机如何定位类

    学Java有些日子了,一直都使用IDE来写程序.这样的好处就是能让我连如何用命令行编译,解释执行Java源代码都不知道,就更不清楚JDK中的编译器和虚拟机(包含字节码解释器)是如何定位到类文件的.悲哀 ...

  8. SSIS -->> Variable

    变量的特点: 1)大小写敏感 2)可见范围限制,里层可以看到外层,外层看不到里层的: 在属性窗口开启EvaluateAsExpression选项可以支持expression动态赋值变量

  9. 原生javascript-常用的函数

    [一]添加监听事件 addHandler:function(node,type,fn){if(node.addEventListener){ node.addEventListener(type,fn ...

  10. jenkins的搭建和使用

    Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上.同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和 ...