.NET 如何在Word中插入组合框(Combo Box)
组合框(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);
}
}
}
添加效果示意:
本文所使用方法引用的均为免费的Free Spire.Doc for .NET中的DLL。
1 声望
0 粉丝
推荐阅读
Java 合并PDF文件
对于内容联系比较紧密,但是却被分成多个文件的PDF文档,我们可以将其合并为一个PDF文档,方便我们阅读内容以及处理文档。本文将介绍一种用Java编程实现合并PDF文档的方法。
大丸阅读 999
Just for fun——C#应用和Nodejs通讯
进程通信常见的进程通讯的方法有:管道(Pipe)命名管道信号消息队列其他管道是比较简单基础的技术了,所以看看它。Node IPC支持Node官方文档中Net模块写着:IPC SupportThe net module supports IPC with named ...
pigLoveRabbit赞 2阅读 6.5k评论 2
必看!.NET 7 在网络领域的四大更新
最新的 .NET 7 现已发布,我们想介绍一下其在网络领域所做的一些有趣的更改和添加。这篇文章我们将讨论 .NET 7 在 HTTP 空间、新 QUIC API、网络安全和 WebSockets 方面的变化。
微软技术栈赞 1阅读 573
给 .NET 程序加个「设置开机启动」
前几天写了个「干掉微信只读」的程序,用来解决微信更新 3.9 以后收到文件会自动设置为只读的问题。微信这个设计可以有效地保证收到的原始文件安全性,避免被无意改动。但确实有违某些用户的习惯性操作。「干掉微...
边城赞 1阅读 391
关于《小公司需要使用微服务架构吗?》的读后感
最近阅读了一篇文章《小公司需要使用微服务架构吗?》,这篇文章讨论了微服务架构的优缺点,以及微服务架构是否适合小公司。为了蹭一下热度,本文将结合两年半的练习经验,谈谈我对这篇文章的读后感。
newbe36524赞 2阅读 256
比特熊故事汇2.0 | 矛盾个性是促成创意不竭的正反合
2023年开年故事汇,我们请来一位“熟悉的新朋友”,他乐观、谨慎、敢于尝试、富有想象力,擅长Azure、AI、C#、产品设计。他是拥有10年+经验的微软MVP,也是有点社恐却谈笑风生的开发人。本期比特熊故事汇主人公——王...
微软技术栈阅读 920
使用 .NET 7、Blazor 和 .NET MAUI 构建你自己的 Podcast App
.NET Podcast App 首次在 .NET Conf 2021上推出,最近进行了更新以在 .NET Conf 2022 keynote 中突出显示 .NET 7 中的新功能。该 Podcast App 已准备好使用展示 .NET,ASP.NET Core,Blazor,.NET MAUI,Azure Co...
微软技术栈阅读 860
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。