以下经验内容将分享通过C#程序来获取Word文档中的内容控件属性及控件填充内容。
工具/原料
dll获取方法:
1方法1:通过eiceblue官网下载文件包。下载后,解压安装。完成安装后,注意在程序中添加引用Spire.Doc.dll程序集文件。如下图:
C# 代码示例(供参考)
1using 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 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 m_tagInlines; public List tagInlines { get { if (m_tagInlines == null) m_tagInlines = new List(); return m_tagInlines; } set { m_tagInlines = value; } } } }}