C# 读取Word内容控件
在Word中,借助内容控件,可设计出具有特定功能的文档或模板。以下表格中简单介绍了几种常用的内容控件:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 本篇文章将介绍通过C#程序获取Word中已有的内容控件的方法。在Word中添加内容控件,请参考这篇文章。 使用工具:Spire.Doc for .NET dll文件获取及导入: 方法1:通过官网下载dll文件包。下载后,解压安装。完成安装后,注意在vs程序中添加引用Spire.Doc.dll程序集文件。如下图: 方法2:可通过Nuget网站下载。 ?C# 示例代码(供参考):测试文档如下: using Spire.Doc; Spire.Doc.Documents; System; System.Collections.Generic; 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 = StructureTags(); foreach (Section section in document.Sections) { foreach (DocumentObject obj 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 StructureDocumentTagInline); } } } } } return structureTags; } public StructureTags { List<StructureDocumentTagInline> m_tagInlines; public List<StructureDocumentTagInline> tagInlines { get { if (m_tagInlines == null) m_tagInlines = new List<StructureDocumentTagInline>(); m_tagInlines; } set { m_tagInlines = value; } } } } } 内容控件读取效果: ? (本文完) ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- React Native之组件Component与PureComponent
- 7.4.2 使用聚合操作进行计算
- ruby-on-rails – Rspec:检查数组是否包含包含属性的对象
- `react-native run-ios`命令失败(PCH问题),但是在xcode中构
- c# – 快速和高效的ASCII字符串类.NET
- c# – 使用xmlwriter附加xml文件
- c# – 检查PropertyInfo.SetValue是否会抛出ArgumentExcept
- ruby-on-rails – 如何在Rails中验证前从值中删除美元符号?
- PostgreSQL的中文拼音排序
- 详解VUE的状态控制与延时加载刷新