zoukankan      html  css  js  c++  java
  • 【C#】操作word 【Aspose.Words】

    上图是要填充的word模板,就是一个接口说明文档。那个像书名号括起来的东西就是要替换的,这个东西并不是键盘输入的书名号,它是文档部件的一种,要插入这个东西需要:
    打开模板word文件,用office打开,点击插入,找到下面的文档部件
    在点开后弹出的下拉菜单里选择
    在弹出的窗口里,选择类别 邮件合并
    域名选择MergeFied
    最后输入如Cvouchname的字样。
    这样我们就添加好了一个域了。
    对表格的处理,表格的循环体要这样写<TableStart:headList>表示循环的开始 headList是填充表格的DataTable的名称。<TableEnd:headList>也必须写。
    表格里面的 EnField就是自己定义的headList的列名,这个域名和headList的列名相同就会渲染到文档域名处。
    做好这些 模板就准备好了。
    代码部分:
    先使用nuget 安装 Aspose.Words这个组件,没有nuget可以百度Aspose.Words。
    //模板里的域
    String[] fieldNames = new String[] { "Cvouchname", "Cvouchtype", "BusinessScene", "Cvouchname1","JsonStr" };
    var doc = new Document(tempPath);//tempPath为模板路径
    //与fieldNames对应的值
    Object[] fieldValues = new object[5];
    //渲染文档
    doc.MailMerge.Execute(fieldNames, fieldValues);
    
    表格部分是这样:
    //表格名称 表格列要和文档模板里的一样
    DataTable headTable = new DataTable("headList");
                    headTable.Columns.Add("EnField");
                    headTable.Columns.Add("ChinaField");
                    headTable.Columns.Add("FieldMark");
                    headTable.Columns.Add("IsMust");
                    headTable.Columns.Add("IDNum");
    表格的数据自己填充好。
    //渲染表格
    doc.MailMerge.ExecuteWithRegions(headTable);
    

    红字是这个组件自主渲染上去的。
  • 相关阅读:
    python编码问题和py2和py3的不同
    day27
    多继承补充
    zoj3820 Building Fire Stations 树的中心
    DLX舞蹈链 hdu5046
    时间复杂度
    线性求中位数 poj2388
    codeforce447 D SGU 548 贪心+优先队列
    hdu4864 hdu4268 贪心 lower_bound
    zoj3672 Gao The Sequence
  • 原文地址:https://www.cnblogs.com/HelloQLQ/p/14983718.html
Copyright © 2011-2022 走看看