您的位置:首页 > 编程语言 > ASP

Aspose.Words导出主从表格

2017-05-27 16:39 513 查看

先看效果

有客户数据,放个缩小图,可以看到里面包含若干个不同客户/供应商的对账单,每个对账单分页



模板设置

主要就是两个TableStart和TableEnd嵌套使用:



合并操作

关系设置

因为是主丛表,所以要设置两个表之间的关系,例如像下面这样设置:
dataset.Relations.Add(dataset.Tables[0].Columns["cCusCode"], dataset.Tables[1].Columns["cCusCode"]);

合并

Aspose.Words真是个良心作品,使用起来很简单,获取数据源之后用很少的代码就能完成。
//载入模板
var doc = new Document(Program.receivableTemplate);
//合并模版,相当于页面的渲染
doc.MailMerge.ExecuteWithRegions(dataset);

保存

winform的,保存到磁盘:
SaveFileDialog dialog = new SaveFileDialog();
dialog.Filter = "Word97-2003文件(*.doc)|*.doc|Word文件2007版(*.docx)|*.docx";
dialog.RestoreDirectory = true;
//点了保存按钮进入
if (dialog.ShowDialog() == DialogResult.OK)
{
string localFilePath = dialog.FileName.ToString(); //获得文件路径
string fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1); //获取文件名,不带路径
doc.Save(localFilePath);
if (MessageBox.Show("文件已经保存到:" + localFilePath + "\n\n是否查看?", "保存成功", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
System.Diagnostics.Process.Start(localFilePath);
}
}

要点

两个TableStart/TableEnd嵌套,要求Aspose.Words版本是8以上,不然会出错。
分页的问题,主表的TableEnd要在分页符后面。并且主表的TableEnd后面的内容会被清除,合并后就没有了,TableStart前面的内容也会被清除(没试)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Aspose.Words 合并 分页