C# 在Word中添加内容控件

2025-06-28 22:49:53

在Word中,借助内容控件,可设计出具有特定功能的文档或模板。此经验内容将介绍在Word中添加比较常用的几种内容控件,包括下拉列漉胜衲仰表内容控件、纯文本内容控件、富文本内容控件、日期选取器内容控件、组合框内容控件、图片内容控件等。

工具/原料

Spire.Doc for .NET

dll文件获取及引用:

1、方法1:通过eiceblue官网下载文件包。下载后,解压安装。完成安装后,注意在程序中添加引用Spire.Doc.dll程序集文件。如下图:

C# 在Word中添加内容控件

2、方法2:可通过Nuget网站下载。

C# 代码示例(供参考)

1、using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System;using System.Drawing;namespace Addsdt{ class Program { static void Main(string[] args) { //创建word文档 Document document = new Document(); Section section = document.AddSection(); Paragraph paragraph = section.AddParagraph(); //实例化StructureDocumentTagInline类的对象 StructureDocumentTagInline sdt = new StructureDocumentTagInline(document); //添加下拉列表内容控件 paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.SDTType = SdtType.DropDownList; //为控件设置标题和标签 sdt.SDTProperties.Alias = "下拉列表"; sdt.SDTProperties.Tag = "下拉列表"; //添加下拉选项 SdtDropDownList sddl = new SdtDropDownList(); sddl.ListItems.Add(new SdtListItem("男", "1")); sddl.ListItems.Add(new SdtListItem("女", "2")); sdt.SDTProperties.ControlProperties = sddl; //设置控件显示的初始选项 TextRange rt = new TextRange(document); rt.Text = sddl.ListItems[0].DisplayText; Spire.Doc.Formatting.CharacterFormat format = new Spire.Doc.Formatting.CharacterFormat(document); format.FontName = "宋体"; rt.ApplyCharacterFormat(format); sdt.SDTContent.ChildObjects.Add(rt); //添加纯文本内容控件 paragraph = section.AddParagraph(); sdt = new StructureDocumentTagInline(document); paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.SDTType = SdtType.Text; //为控件设置标题和标签 sdt.SDTProperties.Alias = "纯文本"; sdt.SDTProperties.Tag = "纯文本"; //设置显示文本 SdtText text = new SdtText(false); text.IsMultiline = true; sdt.SDTProperties.ControlProperties = text; rt = new TextRange(document); rt.Text = "此处只能输入纯文本"; rt.ApplyCharacterFormat(format); sdt.SDTContent.ChildObjects.Add(rt); //添加富文本内容控件 paragraph = section.AddParagraph(); sdt = new StructureDocumentTagInline(document); paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.SDTType = SdtType.RichText; //为控件设置标题和标签 sdt.SDTProperties.Alias = "富文本"; sdt.SDTProperties.Tag = "富文本"; //设置显示文本 SdtText richText = new SdtText(true); richText.IsMultiline = true; sdt.SDTProperties.ControlProperties = richText; rt = new TextRange(document); rt.Text = "可输入格式化的文本、表格、图片等"; rt.ApplyCharacterFormat(format); sdt.SDTContent.ChildObjects.Add(rt); //添加日期选取器内容控件 paragraph = section.AddParagraph(); sdt = new StructureDocumentTagInline(document); paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.SDTType = SdtType.DatePicker; //为控件设置标题和标签 sdt.SDTProperties.Alias = "日期选取器"; sdt.SDTProperties.Tag = "日期选取器"; //设置日历模式 SdtDate date = new SdtDate(); date.CalendarType = CalendarType.Default; date.DateFormat = "yyyy.MM.dd"; date.FullDate = DateTime.Now; sdt.SDTProperties.ControlProperties = date; //设置显示日期 rt = new TextRange(document); rt.Text = "2019.08.22"; rt.ApplyCharacterFormat(format); sdt.SDTContent.ChildObjects.Add(rt); //添加组合框内容控件 paragraph = section.AddParagraph(); sdt = new StructureDocumentTagInline(document); paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.SDTType = SdtType.ComboBox; //为控件设置标题和标签 sdt.SDTProperties.Alias = "组合框"; sdt.SDTProperties.Tag = "组合框"; //添加选项 SdtComboBox cb = new SdtComboBox(); cb.ListItems.Add(new SdtListItem("中国", "1")); cb.ListItems.Add(new SdtListItem("日本", "2")); cb.ListItems.Add(new SdtListItem("意大利", "3")); sdt.SDTProperties.ControlProperties = cb; //添加显示文本 rt = new TextRange(document); rt.Text = cb.ListItems[0].DisplayText; rt.ApplyCharacterFormat(format); sdt.SDTContent.ChildObjects.Add(rt); //添加复选框内容控件 paragraph = section.AddParagraph(); sdt = new StructureDocumentTagInline(document); paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.SDTType = SdtType.CheckBox; //为控件设置标题和标签 sdt.SDTProperties.Alias = "复选框"; sdt.SDTProperties.Tag = "复选框"; SdtCheckBox scb = new SdtCheckBox(); sdt.SDTProperties.ControlProperties = scb; rt = new TextRange(document); rt.ApplyCharacterFormat(format); sdt.ChildObjects.Add(rt); scb.Checked = false; //添加图片内容控件 paragraph = section.AddParagraph(); sdt = new StructureDocumentTagInline(document); paragraph.ChildObjects.Add(sdt); sdt.SDTProperties.ControlProperties = new SdtPicture(); //为控件设置标题和标签 sdt.SDTProperties.Alias = "图片"; sdt.SDTProperties.Tag = "图片"; //添加图片 DocPicture pic = new DocPicture(document); pic.WidthScale = 30f; pic.HeightScale = 30f; pic.LoadImage(Image.FromFile("nz.png")); sdt.SDTContent.ChildObjects.Add(pic); //保存文档 document.SaveToFile("Controls.docx", FileFormat.Docx); System.Diagnostics.Process.Start("Controls.docx"); } }}

2、内容控件添加效果:

C# 在Word中添加内容控件
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢