利用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;

aspose输出表格的更多相关文章

  1. 用JavaScript输出表格

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  2. Javascript输出表格

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. vue v-for输出表格结构

    v-for输出表格结构 数据库结构如下: 原理: 两个数组 a, b,  数组a的值,是数组b的键(索引), 变量拼接(红色区域): <table> <tr> <th v ...

  4. [shell脚本]在Linux终端可视化输出表格数据

    最终效果 1. 自定义表格样式 2. 自定义主题颜色 支持三系普通颜色 支持16色彩虹色 支持单颜色 回顾一下shell语法 1. shell传递参数 我们可以在执行shell脚本时实时传递参数从而指 ...

  5. Aspose.Word 输出表格后空格字符丢失的解决方法

    将datatable输出到word,执行如下代码. doc.MailMerge.ExecuteWithRegions(outDt); 执行完后发现第一列含前缀空格的字段值,空格字符被自动清除了. 解决 ...

  6. PHP 输出表格单元格的数据之用表单的方式;

    echo "<table border=1 class="imagetable" >"; //使用表格格式化数据echo "<for ...

  7. Python之使用转义序列 \n 和 \t 跟 expandtabs 函数输出表格

    示例: text = "username\temail\tpassword\nashdfh\tfiodfh@q.com\ty567\nsdfiuh\tadfhisoj@163.com\t42 ...

  8. thinkphp输出表格

    //这是打印5列n行的表格,所以mod="5" value="4" <tr> <volist name="data" id ...

  9. 013-PHP输出表格

    <?php // 数据表格化 print("<TABLE bgcolor='ffccoo' BORDER=\"1\">\n"); // 表格开 ...

随机推荐

  1. JavaScript基础之函数与数组

     函数    函数的基本概念 为完成某一功能的程序指令(语句)的集合,称为函数.有的程序员把函数称为方法,希望大家不要被这两个名词搞晕了. 函数分为:自定义函数.系统函数(经常查看js帮助手册). j ...

  2. shell脚本执行查找进程,然后查杀进程

    shell 执行查找进程,然后查杀进程脚本如下: ps -ef | grep 'IOE' |grep -v 'grep'| awk '{print \$2}' |while read pid; do ...

  3. lintcode:接雨水

    接雨水 给出 n 个非负整数,代表一张X轴上每个区域宽度为 1 的海拔图, 计算这个海拔图最多能接住多少(面积)雨水. 如上图所示,海拔分别为 [0,1,0,2,1,0,1,3,2,1,2,1], 返 ...

  4. Android核心分析之十六Android电话系统-概述篇

    Android电话系统之概述篇 首先抛开Android的一切概念来研究一下电话系统的最基本的描述.我们的手机首先用来打电话的,随后是需要一个电话本,随后是PIM,随后是网络应用,随后是云计算,随后是想 ...

  5. getElementByClassName封装函数用法

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

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

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

  7. MyBatis笔记——初次环境配置

    简单介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBati ...

  8. framework-Binder

    init进程fork servicemanager进程用来提供(server)注册service和(client)检索service功能.servicemanager维护了一个service列表,cl ...

  9. eclipse中启动tomcat报错 java.lang.ClassNotFoundException

    之前启动还好好的,某次启动tomcat就莫名其妙的报了这个java.lang.ClassNotFoundException的错.   检查maven依赖包,发现这个类是存在的. 然后一通clean操作 ...

  10. [JWFD开源工作流]JWFD开源工作流官方下载内容更新

    在更新版的JWFD二次开发包中,我正在实现单线程的时钟控制器,动了下引擎的源代码,这个更新包主要是升级界面,内核代码,大家就不用升级了.. 代码提示: 请修改代码包中(org.jwfd.workflo ...