如何从powerpoint中的幻灯片中删除图表

时间:2012-05-06 07:47:33

标签: c# powerpoint

我有一张幻灯片的pptx文件。幻灯片中有一张图表。我想使用C#代码从幻灯片中删除该图表。我写了一个C#程序来做。运行解决方案后,当我打开转换后的pptx文件时;我收到这个错误:

  

powerpoint删除了test2中不可读的内容

我的C#代码如下。

string pptxFileNameTemplate = "D:\\test.pptx";
string pptxFileNameGenerate = "D:\\test2.pptx";

File.Copy(pptxFileNameTemplate, pptxFileNameGenerate, true);
using (PresentationDocument presentationDocument = PresentationDocument.Open(pptxFileNameGenerate, true))
{  
    PresentationPart presentationPart = presentationDocument.PresentationPart;
    List<SlidePart> slideParts = new List<SlidePart>();
    presentationPart.GetPartsOfType<SlidePart>(slideParts);
    SlidePart slp = slideParts[0];
    List<ChartPart> chartParts = new List<ChartPart>();
    slp.GetPartsOfType<ChartPart>(chartParts);
    ChartPart cp = chartParts[0];
    string chartPartIdBookMark = slp.GetIdOfPart(cp);
    slp.DeletePart(chartPartIdBookMark);
    slp.Slide.Save();
    presentationDocument.Close();
}

1 个答案:

答案 0 :(得分:1)

您可以使用application.presentation.slides循环所有幻灯片,并对slide.shapes集合中的每个形状检查shape.type,当type是图表调用shape.delete