多语言展示
当前在线:1691今日阅读:155今日分享:35

C# 修改、编辑Word中的OLE对象

插入Word中的OLE对象,是可以通过一定方法来更改的,可以更改链接路径或修改数据等。下面将演示具体的操作步骤。
工具/原料
1

Spire.Doc for .NET

2

Visual Studio

dll文件引用

在E-iceblue官网或者Nuget网站上下载 Spire.Doc for .NET的安装包后,注意在编辑代码时,添加引用Spire.Doc.dll到程序。dll文件可在安装路径下的Bin文件夹中获取。

C#代码示例
1

测试文档 如下:

2

using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System.Drawing;using System.IO; namespace EditOLE_Doc{    class Program    {        static void Main(string[] args)        {            //实例化一个Document对象,加载含有OLE的Word文档            Document doc = new Document();            doc.LoadFromFile('test.docx');             //获取第一个Section            Section sec = doc.Sections[0];             //遍历这个Section中的所有子元素,找到段落下的OLE对象            foreach (DocumentObject obj in sec.Body.ChildObjects)            {                if (obj is Paragraph)                {                    Paragraph par = obj as Paragraph;                    foreach (DocumentObject paraObj in par.ChildObjects)                    {                        //找到OLE对象,根据类型来进行更改操作                        if (paraObj.DocumentObjectType == DocumentObjectType.OleObject)                        {                            DocOleObject Ole = paraObj as DocOleObject;                            //如果是链接, 修改对象的链接路径                            if (Ole.LinkType == OleLinkType.Link)                            {                                //同时还要手动去更改OLE的图片                                DocPicture pic = Ole.OlePicture;                                pic.LoadImage(Image.FromFile('Img.png'));                                Ole.LinkPath = @'sample.docx';                            }                            //如果是嵌入,更改数据即可                            byte[] bys = File.ReadAllBytes(@'sample.docx');                            if (Ole.LinkType == OleLinkType.Embed)                            {                                DocPicture pic = new DocPicture(doc);                                pic.LoadImage(Image.FromFile(@'Img.png'));                                Ole.ObjectType = 'Word.Document.12';                                Ole.SetOlePicture(pic);                                Ole.SetNativeData(bys);                            }                        }                    }                }            }            //保存修改后的文档,并打开            doc.SaveToFile('修改OLE.docx', Spire.Doc.FileFormat.Docx2010);            System.Diagnostics.Process.Start('修改OLE.docx');        }    }}

3

调试运行程序后,生成文档。打开文档时,生成的文档中原有的插入OLE的图片和链接的文档都已经更改了,如下所示:

推荐信息