使用 PowerPoint 加载项自动更新 OLE 对象

自动更新 OLE 对象

Aspose.Slides for Java 客户最常问的一个问题是如何创建或修改可编辑的图表(或其他 OLE 对象),使其在打开演示文稿时自动更新。不幸的是,PowerPoint 并不像 Excel 和 Word 那样支持自动宏。唯一可用的宏是 Auto_OpenAuto_Close,且只能从加载项中自动运行。本技术小贴士演示了实现方式。

首先,有几个免费加载项可以为 PowerPoint 添加 Auto_Open 宏功能,例如AutoEvents Add-inEvent Generator

安装其中一个加载项后,只需像下面示例中那样在模板演示文稿中添加 Auto_Open() 宏(如果使用 Event Generator,则添加 OnPresentationOpen()):

// 循环遍历演示文稿中的每张幻灯片。
for (var oSlide : ActivePresentation.Slides) {
    // 循环遍历当前幻灯片上的所有形状。
    for (var oShape : oSlide.Shapes) {
        // 检查形状是否为 OLE 对象。
        if ((oShape.Type == msoEmbeddedOLEObject)) {
            // 找到 OLE 对象。获取其对象引用并进行更新。
            oObject = oShape.OLEFormat.Object;
            oObject.Application.Update();
            // 现在,退出 OLE 服务器程序。
            // 这将释放内存,并防止任何问题。
            // 同时,将 oObject 设为 Nothing 以释放对象。
            oObject.Application.Quit();
            oObject = null;
        }
    }
}

使用 Aspose.Slides for Java 对 OLE 对象所做的任何更改,在 PowerPoint 打开演示文稿时都会自动更新。如果 OLE 对象很多且不想全部更新,只需为需要处理的形状添加自定义标签,并在宏中检查该标签。