Aspose.Words导出主从表格

4 篇文章 0 订阅

先看效果

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


模板设置

主要就是两个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);
                }
            }

要点

  1. 两个TableStart/TableEnd嵌套,要求Aspose.Words版本是8以上,不然会出错。
  2. 分页的问题,主表的TableEnd要在分页符后面。并且主表的TableEnd后面的内容会被清除,合并后就没有了,TableStart前面的内容也会被清除(没试)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello World,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值