C# 读取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 = ; 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;
}
}
}
}
}
内容控件读取效果:

(本文完)
C# 读取Word内容控件的更多相关文章
- word 内容控件属性编辑
场景: 别人发给自己一份word模板,基于统一性,里面包含了很多“内容控件”,一般情况下,只需要根据内容控件进行编辑即可,但如果想对内容控件本身做编辑操作,例如删除等. 操作: 单击 文件>选项 ...
- C# 给Word文档添加内容控件
C# 给Word文档添加内容控件 在MS Word中,我们可以通过内容控件来向word文档中插入预先定义好的模块,指定模块的内容格式(如图片.日期.列表或格式化的文本等),从而创建一个结构化的word ...
- java读取word内容
暂时只写读取word内容的方法. 依赖的jar: poi-3.9-20121203.jarpoi-ooxml-3.9-20121203.jarxmlbeans-2.3.0.jar package co ...
- 《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的顶级控件,或是引用母版页的嵌套母版页。”
VS2005下,添加了母版页这个控件,我们可以讲N个页面中共同的部分放在母版页来实现,并让WEB窗体集成自我们的母版页,就可以让我们的站点具有统一的风格了.在VS2005SP1之前的版本中,我们只能创 ...
- 重新想象 Windows 8 Store Apps (3) - 控件之内容控件: ToolTip, Frame, AppBar, ContentControl, ContentPresenter; 容器控件: Border, Viewbox, Popup
原文:重新想象 Windows 8 Store Apps (3) - 控件之内容控件: ToolTip, Frame, AppBar, ContentControl, ContentPresenter ...
- OpenXml读取word内容(一)
OpenXml读取word内容注意事项 1.使用OpenXml读取word内容,word后缀必须是".docx":如果word后缀是".doc"需要转成&quo ...
- WPF自学入门(六)WPF带标题的内容控件简单介绍
在WPF自学入门(二)WPF-XAML布局控件的文章中分别介绍StackPanel,WarpPanel,DockPanel,Grid,Canvas五种布局容器的使用,可以让我们大致了解容器可以使用在什 ...
- python如何转换word格式、读取word内容、转成html
# python如何转换word格式.读取word内容.转成html? import docx from win32com import client as wc # 首先将doc转换成docx wo ...
- WPF 10天修炼 第五天- 内容控件
WPF内容控件 在WPF中,所有呈现在用户界面上的对象都称为用户界面元素.但是只有派生自System.Windows.Controls.Control类的对象才称为控件.内容控件通常是指具有Conte ...
随机推荐
- iOS-监听原生H5性能数据window.performance
WebKit-WKWebView iOS8开始苹果推荐使用WKWebview作为H5开发的核心组件,以替代原有的UIWebView,以下是webkit基本介绍介绍: 介绍博客 Webkit H5 - ...
- C# MATLAB混编(二)
在上一篇博客中说到按照参考教程操作之后依然有两个问题. 问题1:当我在matlab中输入mbuild -setup后 报错 解:这是因为VS与Matlab存在版本匹配问题,理论上来说vs版本最好 ...
- Ansible CMDB
Ansible CMDB CMDBAnsible-CMDB CMDB 文章目录 1. 简介 2. 安装 2.1. 1. 安装 ansible 2.2. 2. 下载并安装 ansible-cmdb 3. ...
- mysql查询表所有列名,并用逗号分隔
SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ",") FROM information_schema.COLUMNS WHERE TABLE ...
- javaweb入门--web是什么
WEB基本概念 首先明白web是什么,人们常说的web其实就是英文中页面的意思,准确来说是Internet主机供给外界访问的资源. 站在用户视角,也就是说,通过你浏览器(客户端)的地址栏输入资源(你要 ...
- [译]Python中的异步IO:一个完整的演练
原文:Async IO in Python: A Complete Walkthrough 原文作者: Brad Solomon 原文发布时间:2019年1月16日 翻译:Tacey Wong 翻译时 ...
- 重启iis的命令是什么?三种简单的重启方式
第一种.界面操作 打开“控制面板”->“管理工具”->“服务”.找到“IIS Admin Service” 右键点击“重新启动” 弹出 “停止其它服务” 窗口,点击“是”. 第二种.Net ...
- 对数变换(一些基本的灰度变换函数)基本原理及Python实现
1. 基本原理 变换形式如下 $$T(r) = c\lg(r+1)$$ c为常数 由于对数函数的导数随自变量的增大而减小,对数变换将输入窄范围的低灰度值扩展为范围宽的灰度值和宽范围的高灰度值压缩为映射 ...
- Educational Codeforces Round 70 (Rated for Div. 2)
这次真的好难...... 我这个绿名蒟蒻真的要崩溃了555... 我第二题就不会写...... 暴力搜索MLE得飞起. 好像用到最短路?然而我并没有学过,看来这个知识点又要学. 后面的题目赛中都没看, ...
- 武林 HDU - 1107
题目链接:https://vjudge.net/problem/HDU-1107 注意:题目中只有两个不同门派的人在同一个地方才能对决,其他情况都不能对决. 还有,这步的有效的攻击只有走到下一步之后才 ...