从DataTable构建表
Contents
[
Hide
]
通常,您的应用程序将从数据库中提取数据并以DataTable的形式存储。 您可能希望轻松地将此数据作为新表插入到文档中,并快速将格式应用于整个表。
请注意,将DataTable中的数据插入文档表的首选方法是使用 Mail Merge与区域. 本文中介绍的技术仅在您无法事先创建合适的模板来合并数据时才会建议使用,换句话说,如果您需要以编程方式执行所有操作。
使用Aspose.Words,您可以轻松地从数据库中检索数据并将其存储为表:
- 在Document上创建一个新的DocumentBuilder对象。
- 使用DocumentBuilder启动一个新表。
- 如果我们想将DataTable中的每个列的名称作为标题行插入,那么遍历每个数据列并将列名写入表中的一行。
- 遍历DataTable中的每个DataRow:
- 遍历DataRow中的每个对象。
- 使用DocumentBuilder将对象插入到文档中。 使用的方法取决于插入的对象的类型,例如[DocumentBuilder.writeln()](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#writeln())用于文本,[DocumentBuilder.insertImage()](https://reference.aspose.com/words/java/com.aspose.words/documentbuilder/#insertImage(byte[]))用于表示图像的字节数组。
- 在数据行的处理结束时,也通过使用DocumentBuilder.endRow()结束由DocumentBuilder创建的行。
- 处理完DataTable中的所有行后,通过调用DocumentBuilder.endTable()完成表。
- 最后,我们可以使用适当的表属性之一(如Table.getStyleIdentifier())设置所需的表样式,以自动将格式应用于整个表。 在这个例子中使用了DataTable中的以下数据:
下面的代码示例演示如何在Aspose.Words中执行上述算法:
然后可以使用DocumentBuilder和数据轻松调用该方法。
下面的代码示例演示如何从DataTable
导入数据并将其插入到文档中的新表中:
下图所示的表格是通过运行上述代码生成的。