组合框(Combo Box)是文本框和下拉列表的组合,同时允许编辑者在列表选择项目显示和输入内容。它是Word文档中一个非常实用的功能,对于比较固定的一些数据,如性别、地点,或是几个项目的选择等,用组合框就可以方便数据录入,又允许对于数据的添加。添加组合框可通过代码实现,无需微软Word或是其他文档编辑软件,可将代码集成到自己的程序中实现该功能。本文将介绍通过代码实现添加组合框到Word文档中的操作方方法。
本文所介绍的方法需要借助免费Word库Free Spire.Doc for .NET,需引入DLL文件以及插件到项目中使用。

1. 通过Nuget引入

1.1 在Nuget管理界面中搜索FreSpire.Doc安装。
1.2 在控制台输入以下代码安装。
PM> Install-Package FreeSpire.Doc

2. 手动下载添加DLL

Free Spire.Doc for .NET官网下载解压文件,然后在项目依赖项中添加DLL文件。

在Word文档中插入组合框

详细操作步骤如下:

  • 通过创建 Document 类的对象创建Word文档。
  • 用 Document.LoadFromFile() 方法从磁盘加载Word文档。
  • 用 Section.AddParagraph() 方法在文档第一节中添加一个段落。
  • 在添加的段落中添加文字并设置字号、字体。
  • 通过创建 StructureDocumentTagInline 的对象创建内容控件。
  • 用 Paragraph.ChildObjects.Add() 方法将内容控件插入到定位的段落。
  • 用 SdtType.ComboBox 属性将内容控件的类型设置为组合框。
  • 通过创建 SdtComboBox 的对象创建组合框控件。
  • 用 SdtComboBox.ListItems.Add() 方法设置组合框控件的选项。
  • f
  • 用 SdtComboBox.ListItem[].DisplayText 属性选择下拉列表第二个选项,并用 SDTContent.ChildObjects.Add(rt) 方法将该选项添加为显示的选项。
  • 用 Document.SaveToFile() 方法保存文档。

代码示例:

using System;
using System.Drawing;
using Spire.Doc;
using Spire.Doc.Fields;
using Spire.Doc.Documents;

namespace AddContentControl
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //创建Word文档
            Document document = new Document();

            //从磁盘加载Word文档
            document.LoadFromFile(@"C:\Users\Allen\Desktop\New Microsoft Word Document (2).docx");

            //在文章第一节中添加一个段落
            Section section = document.Sections[0];
            Paragraph paragraph = section.AddParagraph();

            //在添加的段落中添加文字并设置字号、字体
            TextRange text = paragraph.AppendText("组合框控件: ");
            text.CharacterFormat.FontSize = 14;
            text.CharacterFormat.FontName = "微软雅黑"; 

            //创建内容控件
            StructureDocumentTagInline sd = new StructureDocumentTagInline(document);
            
            //将内容控件插入到创建的段落
            paragraph.ChildObjects.Add(sd);

            //将内容控件的类型设置为组合框
            sd.SDTProperties.SDTType = SdtType.ComboBox;

            //创建组合框控件
            SdtComboBox cb = new SdtComboBox();

            //设置组合框控件的选项
            cb.ListItems.Add(new SdtListItem("A"));
            cb.ListItems.Add(new SdtListItem("B"));
            cb.ListItems.Add(new SdtListItem("C"));

            //将组合框控件插入到前面创建的内容控件
            sd.SDTProperties.ControlProperties = cb;

            //将组合框控件设置为显示第二个选项
            TextRange rt = new TextRange(document);
            rt.Text = cb.ListItems[1].DisplayText;
            sd.SDTContent.ChildObjects.Add(rt);

            //保存文档
            document.SaveToFile("Output.docx", FileFormat.Docx);
        }
    }
}

添加效果示意:

Word文档中插入组合框

本文所使用方法引用的均为免费的Free Spire.Doc for .NET中的DLL。


大丸子
12 声望3 粉丝