1
Powerpoint 슬라이드를 열고 그래프를 새로 고친 다음 종료하는 C# 코드가 있습니다.종료 할 때의 Powerpoint 문제
사용자가 이미 Powerpoint 슬라이드를 열어 놓지 않으면이 기능이 제대로 작동합니다.이 경우 exe가 실행되면 기존 세션이 닫힙니다 (변경 사항이 손실 될 수 있습니다).
PPT가 백그라운드에서 열리고, 아래 코드 (템플릿 열기, 일부 그래프 새로 고침, 저장 및 닫기)를 실행하는 EXE를 실행하는 경우 문제가 발생합니다. 애플리케이션 종료시 변수 ppApp가 삭제됩니다. PPT를 실행할 때마다 닫히는 것 같습니다.
ppApp.Quit()를 생략해도 마찬가지입니다.
PowerPoint.Application ppApp = new PowerPoint.Application();
PowerPoint.Presentation ppPres = ppApp.Presentations.Open(MITemplate, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);
//refresh graphs
foreach(PowerPoint.Slide sl in ppPres.Slides)
{
foreach (PowerPoint.Shape sh in sl.Shapes)
{
if (sh.Type.Equals(Microsoft.Office.Core.MsoShapeType.msoLinkedOLEObject))
{
sh.LinkFormat.SourceFullName = XLTemplate + sh.LinkFormat.SourceFullName.Substring(sh.LinkFormat.SourceFullName.LastIndexOf("\\") + 1);
sh.LinkFormat.Update();
}
}
}
ppPres.SaveAs(outputFilename);
ppPres.Close();
ppApp.Quit();