多语言展示
当前在线:894今日阅读:138今日分享:33

C# 读取Word中的OLE对象

此经验,将介绍通过C#编程来读取Word中的OLE对象。
工具/原料
1

Spire.Doc for .NET

2

Visual Studio

dll引用

下载安装后,注意在程序中添加引用Spire.Doc.dll(dll可在安装路径下的bin文件夹中获取)

C#示例代码
1

using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System.IO; namespace ReadOLE_Doc{    class Program    {        static void Main(string[] args)        {            //实例化一个Document对象,加载一个有OLE对象的文档            Document doc = new Document();                     doc.LoadFromFile(@'test.docx');             //遍历文档所有Section                     foreach (Section sec in doc.Sections)            {                //遍历Section下面所有的子元素                foreach (DocumentObject obj in sec.Body.ChildObjects)                {                    if (obj is Paragraph)                    {                        Paragraph par = obj as Paragraph;                        //遍历这个section下面的段落                        foreach (DocumentObject o in par.ChildObjects)                        {                            //找到OLE对象,并根据类型提取                            if (o.DocumentObjectType == DocumentObjectType.OleObject)                            {                                DocOleObject Ole = o as DocOleObject;                                /*ObjectType属性可以获取ole对象的具体类型。                                注意,如果是用Spire.Doc添加的ole对象的话,需要在AppendOleObject                                的时候先声明OleObjectType,不然这里得不到具体的类型,只会得到Package*/                                string s = Ole.ObjectType;                                //'AcroExch.Document.11'是指PDF对象对应的ProgID                                if (s == 'AcroExch.Document.11')                                {                                    File.WriteAllBytes('Result.pdf', Ole.NativeData);                                }                                //'Excel.Sheet.12'是指 Excel03之后的工作表对应的ProgID                                else if (s == 'Excel.Sheet.12')                                {                                    File.WriteAllBytes('Result.xlsx', Ole.NativeData);                                }                                //'Word.Document.12'是指03之后的Word对应的ProgID                                else if (s == 'Word.Document.12')                                {                                    File.WriteAllBytes('Result.docx', Ole.NativeData);                                }                            }                        }                    }                }            }        }    }}

2

运行程序后,生成文档,读取结果如下图所示:

推荐信息