C# 获取Word内容控件

2025-11-08 14:58:31

1、方法1:通过eiceblue官网下载文件包。下载后,解压安装。完成安装后,注意在程序中添加引用Spire.Doc.dll程序集文件。如下图:

C# 获取Word内容控件

2、方法2:可通过Nuget网站下载。

1、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;

                }

            }

        }

    }

}

2、内容控件读取效果:

C# 获取Word内容控件

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢