Aspose.Words模板创建Word【三】

概要

利用Aspose.words插件,给word文档表格动态批量添加行数据,这种方式和上一篇有点区别,
上一篇提到过,仔细想了想还是追加一篇学习记录吧,当写个总结了(注意:实现创建的word
文档,都是事先制作好word模板文件)。

回到正题:
第一步:制作word模板。
这里写图片描述

第二步:代码实现创建新的word文档。

class Program
{
    static void Main(string[] args)
    {
        string templatePath = @"C:\Users\JeterJing\Desktop\Aspose.Words\template\template1.docx";
        string targetPath = @"C:\Users\JeterJing\Desktop\Aspose.Words\create-example\" + Guid.NewGuid().ToString() + ".docx";
        string message = string.Empty;
        FillWordTableRowData(templatePath, targetPath);
        Console.WriteLine("创建成功!请按照任意键结束。");
        Console.ReadKey(true);
    }

    /// <summary>
    /// 动态填充表格数据
    /// </summary>
    /// <param name="templatePath"></param>
    /// <param name="targetPath"></param>
    private static void FillWordTableRowData(string templatePath, string targetPath)
    {
        Document doc = new Document(templatePath);
        DocumentBuilder builder = new DocumentBuilder(doc);
        //获取表格节点集合
        NodeCollection tables = doc.GetChildNodes(NodeType.Table, true);
        //拿到第一个表格:tableindex=0
        Table table = tables[0] as Table;
        //拿到第三行的row模板:rowindex=2
        var roww = table.Rows[2];
        #region 动态添加表格中的数据
        for (int i = 0; i < 3; i++)
        {
            #region 第一种方式填充数据
            //复制第3行
            var row = roww.Clone(true);
            //将复制的行插入当前行的上方
            table.Rows.Insert(2 + i, row);

            //光标移动到:第一个表格的,第3行的第1列的格子里,即:资质编号
            builder.MoveToCell(0, 2 + i, 0, 0);
            //给资质编号单元格填充内容
            builder.Write("A001");

            //给资质名称单元格填充内容
            builder.MoveToCell(0, 2 + i, 1, 0);
            builder.Write("临床技术资质");

            //给科室审核填充内容
            builder.MoveToCell(0, 2 + i, 2, 0);
            builder.Write("已审核");

            //给院级审核填充内容
            builder.MoveToCell(0, 2 + i, 3, 0);
            builder.Write("已审核");

            //给发放日期填充内容
            builder.MoveToCell(0, 2 + i, 4, 0);
            builder.Write(DateTime.Now.ToString("yyyy-MM-dd"));
            #endregion
        }
        #endregion
        doc.Save(targetPath, SaveFormat.Docx);
    }
}

第三步:运行项目查看结果。
这里写图片描述

第四步:查看新生成的word情况。
这里写图片描述

总结:
这里两篇都提到了,动态word文档中批量填充表格中的行数据。
(1)代码方式有所不同。
(2)模板的样式也有区别。
Aspose.Words模板创建Word【二】

猜你喜欢

转载自blog.csdn.net/realjh/article/details/80078901