手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

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

时间:2024-10-16 02:33:19

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

工具/原料

Spire.Doc for .NET

Visual Studio

dll文件引用

1、在E-iceblue官网或者Nuget网站上下载 Spire.Doc for .N苇质缵爨ET的安装包后,注意在编辑代码时,添加引用Spire.Do艘早祓胂c.dll到程序。dll文件可在安装路径下的Bin文件夹中获取。

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

C#代码示例

1、测试文档 如下:

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

2、using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System.Drawin爿讥旌护g;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的图片和链接的文档都已经更改了,如下所示:

C# 修改、编辑Word中的OLE对象
© 手抄报圈