• aspose输出表格


    利用aspose在word中输出表格

    序号   姓名   性别
     <<TableStart:T>><<Index>>  <<Name>>    <<Sex>><<TableEnd:T>>

    数据源一般是System.Data.DataTable

    有两种方式可以实现这个功能。

    通过绑定。

    在表格中设置域字段。需要注意的是,域的名称应与DataTable中的字段想对应。表的名称应与T一直。

    这个和.net数据展现控件一致。比如,gridview,reapeter..

    设置好模板与数据源后,只需一句话即可实现数据绑定。

    doc.MailMerge.ExecuteWithRegions("T");
    

    优点,代码少。设置好word模板后,提起数据源,进行绑定即可。  

    适用于简单正规的表格,复杂表格不适合这种方式。

    需要注意:

    如果表格外,存在同样一个名称的域字段,那使用下面的方法时会替换全部域字段。也就是说,不会区分该域字段是否独立的,还是包含在表格中的。

    builder.MoveToMergeField("n");
    builder.Write(value.ToString());
    

    通过代码输出表格

    方式一、

    核心代码:

    builder.InsertCell();/*插入一个单元格*/
    builder.CellFormat.VerticalMerge = CellMerge.None;/*设置该单元格的合并性质*/
    builder.EndRow();/*结束本行*/

    输出单元格,设置单元格的合并方式。具体操作可以参考博客园另外一篇博文,点击

    出现过表格不自动合并的情形。

    方式二、

    如果单元格不需要合并,但行数不固定,推荐!

    核心代码:

    var dt1 = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, 1, true);
    Row clonedRow = (Row)dt1.LastRow.Clone(true);
    foreach (Cell cell in clonedRow.Cells) cell.RemoveAllChildren();
    dt1.AppendChild(clonedRow);
    

      查找需要进行操作的表格,选定最后一行,作为模板,清除单元格的数据,以向该表格增加新行,将该行添加到表格中。

    循环,可添加多行。

    数据添加可以先通过builder.MoveToCell移动到指定单元格,再使用builder.Write在单元格中输出数据。

    该操作过程和DataTable添加新行类似。

    表格吻合很好。

    对齐

    对齐有垂直对齐和水平对齐两种。

    垂直对齐

    builder.CellFormat.VerticalAlignment=CellVerticalAlignment.Center;

    水平对齐

    builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;
  • 相关阅读:
    分享完整的项目工程目录结构
    2014年糯米网校
    高并发非自增ID如何设计?
    Asp.Net中使用Couchbase——Memcached缓存使用篇
    协作图(通信图)collaboration diagram
    解决java获取系统时间差8个小时 专题
    智言趣语
    Common class for judge IPV6 or IPV4
    判断参数是否符合要求的一个类
    Connection to https://dl-ssl.google.com refused的解决办法
  • 原文地址:https://www.cnblogs.com/lucika/p/3528595.html
Copyright © 2020-2023  润新知