C# 读取Word内容控件
程序员文章站
2022-08-08 18:56:30
在Word中,借助内容控件,可设计出具有特定功能的文档或模板。以下表格中简单介绍了几种常用的内容控件: 名称 简介 下拉列表内容控件 下拉列表包含了一个预先定义好的列表。和组合框不同的是下拉列表不允许用户编辑项。 纯文本内容控件 纯文本内容控件只能包含文本,不能包含其他项,例如表格、图片或其他内容控 ......
在word中,借助内容控件,可设计出具有特定功能的文档或模板。以下表格中简单介绍了几种常用的内容控件:
名称 |
简介 |
下拉列表内容控件 |
下拉列表包含了一个预先定义好的列表。和组合框不同的是下拉列表不允许用户编辑项。 |
纯文本内容控件 |
纯文本内容控件只能包含文本,不能包含其他项,例如表格、图片或其他内容控件。 |
富文本内容控件 |
与纯文本内容控件不同,富文本内容控件可以包含除文本以外的其他项,例如表格、图片或其他内容控件。 |
日期选取器内容控件 |
日期选取器内容控件包含一个日历控件,用于帮助用户输入日期。 |
组合框内容控件 |
组合框控件包含一个可以直接编辑的列表。它结合了文本框和下拉列表的属性,用户可以在框中键入值或者从下拉列表中选择值。 |
图片内容控件 |
图片内容控件用于显示图片。用户可以在制作模板时指定图片,也可以通过单击此控件来选择需要插入的图片。 |
本篇文章将介绍通过c#程序获取word中已有的内容控件的方法。在word中添加内容控件,请参考这篇文章。
使用工具:spire.doc for .net
dll文件获取及导入:
方法1:通过官网下载dll文件包。下载后,解压安装。完成安装后,注意在vs程序中添加引用spire.doc.dll程序集文件。如下图:
方法2:可通过nuget网站下载。
c# 示例代码(供参考):
测试文档如下:
using spire.doc; using spire.doc.documents; using system; using system.collections.generic; using system.text; namespace getsdt { class program { static void main(string[] args) { //加载含有内容控件的文档 document document = new document(); document.loadfromfile("test.docx"); //调用structuretags类获取内容控件列表 structuretags structuretags = getalltags(document); list<structuredocumenttaginline> taginlines = structuretags.taginlines; //获取内容控件属性并输出到控制台 for (int i = 0; i < taginlines.count; i++) { string alias = taginlines[i].sdtproperties.alias; string tag = taginlines[i].sdtproperties.tag; string value = taginlines[i].sdtcontent.text; console.writeline(alias); console.writeline(tag); console.writeline(value); console.writeline("_____________________"); } console.readline(); } static structuretags getalltags(document document) { //遍历文档并获取所有的内容控件 structuretags structuretags = new structuretags(); foreach (section section in document.sections) { foreach (documentobject obj in section.body.childobjects) { if (obj.documentobjecttype == documentobjecttype.paragraph) { foreach (documentobject pobj in (obj as paragraph).childobjects) { if (pobj.documentobjecttype == documentobjecttype.structuredocumenttaginline) { structuretags.taginlines.add(pobj as structuredocumenttaginline); } } } } } return structuretags; } public class structuretags { list<structuredocumenttaginline> m_taginlines; public list<structuredocumenttaginline> taginlines { get { if (m_taginlines == null) m_taginlines = new list<structuredocumenttaginline>(); return m_taginlines; } set { m_taginlines = value; } } } } }
内容控件读取效果:
(本文完)
下一篇: 鸡肉怎么做好吃又简单,小编来告诉你