• aspose.word使用简单方法


    概念介绍

    使用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[]

  • 相关阅读:
    css3
    js的去重
    mongodb的db.collection is not function
    mongoose的关联查询 :populate
    html/css杂题
    经典的Foo和getName
    AngularJS控制器
    AJAX请求小项目
    AngularJS 依赖注入
    Canvas画布实现自定义时钟效果
  • 原文地址:https://www.cnblogs.com/lucika/p/3519275.html
Copyright © 2020-2023  润新知