我有一些 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();