Word控件Spire.Doc 【表单域】教程(三):如何在 C# 中创建 IF 字段
2023-09-11 14:14:49 时间
通常我们需要根据不同的条件向读者显示不同的文本和信息。在这种情况下,我们需要创建 if 字段来决定向读者显示哪个结果。本文重点介绍如何借助 Spire.Doc for .NET 在 C# 中创建 IF 字段。我们一起使用 IF 字段和 MERGEFIELD 字段。
欢迎下载|体验更多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; } } }
相关文章
- 《C#高级编程》学习笔记----c#内存管理--栈VS堆
- C#中使用SHA1算法对密码进行加密
- 【C#】Excel导出合并行和列并动态加载行与列
- C# DataTable.NewRow 方法
- C# 二维码生成
- C# Json 序列化与反序列化一
- C# 实体类序列化与反序列化二 (DataContractSerializer)
- Atitit. c# 语法新特性 c#2.0 3.0 4.0 4.5 5.0 6.0 attilax总结 1. 版本历史1 1.1. C# 1.0-纯粹的面向对象2 1.2. C# 2.0
- (49)C#里String.IsNullOrEmpty()和String.IsNullOrWhiteSpace()的区别
- (25)C# error CS0281: 友元访问权限
- c#获取基类或接口的所有继承类方法
- C# WebApi的controller中如何存取session