Автоматическое обновление OLE-объектов с помощью дополнения MS PowerPoint
Об автоматическом обновлении OLE-объектов
Один из самых частых вопросов, задаваемых клиентами Aspose.Slides для .NET, заключается в том, как создать или изменить редактируемые диаграммы или любые другие OLE-объекты и автоматически обновлять их при открытии презентации. К сожалению, PowerPoint не поддерживает автоматические макросы, доступные в Excel и Word. Единственные доступные макросы - это Auto_Open и Auto_Close. Однако они запускаются автоматически только из дополнения. Этот краткий технический совет показывает, как это осуществить.
Во-первых, доступно несколько бесплатных дополнений, которые добавляют функцию макроса Auto_Open в PowerPoint, например AutoEvents Add-in и Event Generator.
После установки такого дополнения просто добавьте макрос Auto_Open() (OnPresentationOpen() в случае “Event Generator”) в вашу шаблонную презентацию, как показано ниже:
public void Auto_Open()
{
Shape oShape;
Slide oSlide;
object oGraph;
// Цикл по каждому слайду в презентации.
foreach (var oSlide in ActivePresentation.Slides)
{
// Цикл по всем фигурам на текущем слайде.
foreach (var oShape in oSlide.Shapes)
{
// Проверяем, является ли фигура OLE-объектом.
if (oShape.Type == msoEmbeddedOLEObject)
{
// Найден OLE-объект; получаем ссылку на объект, а затем обновляем.
oObject = oShape.OLEFormat.Object;
oObject.Application.Update();
// Теперь завершаем работу программы OLE-сервера. Это освобождает
// память и предотвращает любые проблемы. Также установите oObject равным
// Nothing, чтобы освободить объект.
oObject.Application.Quit();
oObject = null;
}
}
}
}