• Word控件Spire.Doc 【表单域】教程(三):如何在 C# 中创建 IF 字段


    通常我们需要根据不同的条件向读者显示不同的文本和信息。在这种情况下,我们需要创建 if 字段来决定向读者显示哪个结果。本文重点介绍如何借助 Spire.Doc for .NET 在 C# 中创建 IF 字段。我们一起使用 IF 字段和 MERGEFIELD 字段。

    Spire.Doc for.NET 最新下载 

    欢迎下载|体验更多E-iceblue产品 技术交流Q群(767755948)

    {IF { MERGEFIELD Count } > "100" "谢谢" "最低订购量为 100 件"}

    第一步:新建一个word文档。

    Document document = new Document();
    

    第 2 步:为文档添加一个新部分。

    Section section = document.AddSection();
    

    第 3 步:为该部分添加一个新段落。

    Paragraph paragraph = section.AddParagraph();
    

    第 4 步:定义创建 IF 字段的方法。

    CreateIfField(document, paragraph);
    

    第 5 步:定义合并数据。

    string[] fieldName = {"Count"};
    string[] fieldValue = { "2" };
    

    第 6 步:将数据合并到 IF 字段中。

    document.MailMerge.Execute(fieldName, fieldValue);
    

    第 7 步:更新文档中的所有字段。

    document.IsUpdateFields = true;
    

    第 8 步:将文档保存到文件中。

    document.SaveToFile("sample.docx", FileFormat.Docx);
    

    以下 CreateIfField() 方法显示了如何创建 IF 字段,如:

    {IF { MERGEFIELD Count } > "100" "Thanks" " 最低订购量为 100 个单位 "}

    static void CreateIfField(Document document, Paragraph paragraph)
    {
    IfField ifField = new IfField(document);
    ifField.Type = FieldType.FieldIf;
    ifField.Code = "IF ";
    paragraph.Items.Add(ifField);
    
    paragraph.AppendField("Count",FieldType.FieldMergeField);
    paragraph.AppendText(" > ");
    paragraph.AppendText("\"100\" ");
    paragraph.AppendText("\"Thanks\" ");
    paragraph.AppendText("\"The minimum order is 100 units\"");
    
    IParagraphBase end = document.CreateParagraphItem(ParagraphItemType.FieldMark);
    (end as FieldMark).Type = FieldMarkType.FieldEnd;
    paragraph.Items.Add(end);
    ifField.End = end as FieldMark;
    }
    

    检查有效截图如下:

    完整代码:

    using Spire.Doc;
    using Spire.Doc.Documents;
    using Spire.Doc.Fields;
    using Spire.Doc.Interface;
    namespace CreatIF
    {
    class Program
    {
    static void Main(string[] args)
    {
    Document document = new Document();
    Section section = document.AddSection();
    Paragraph paragraph = section.AddParagraph();
    CreateIfField(document, paragraph);
    string[] fieldName = { "Count" };
    string[] fieldValue = { "2" };
    
    document.MailMerge.Execute(fieldName, fieldValue);
    document.IsUpdateFields = true;
    document.SaveToFile("sample.docx", FileFormat.Docx);
    }
    
    static void CreateIfField(Document document, Paragraph paragraph)
    {
    IfField ifField = new IfField(document);
    ifField.Type = FieldType.FieldIf;
    ifField.Code = "IF ";
    paragraph.Items.Add(ifField);
    paragraph.AppendField("Count", FieldType.FieldMergeField);
    paragraph.AppendText(" > ");
    paragraph.AppendText("\"100\" ");
    paragraph.AppendText("\"Thanks\" ");
    paragraph.AppendText("\"The minimum order is 100 units\"");
    IParagraphBase end = document.CreateParagraphItem(ParagraphItemType.FieldMark);
    (end as FieldMark).Type = FieldMarkType.FieldEnd;
    paragraph.Items.Add(end);
    ifField.End = end as FieldMark;
    }
    
    }
    }

     

  • 相关阅读:
    猿创征文|date-fns 小时助手函数
    Redis原理
    [极客大挑战 2019]Http
    MySQL之用户管理
    SpringCloud Alibaba 详解
    微服务框架 SpringCloud微服务架构 10 使用Docker 10.5 容器命令案例2
    pyenv的安装与简单使用
    什么是右值引用,跟左值又有什么区别
    基于.Net开发的数据库导入导出的开源项目
    期货开户几条建议帮助你
  • 原文地址:https://blog.csdn.net/m0_67129275/article/details/126027817