1

我有一张幻灯片的 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();
}
4

1 回答 1

1

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

于 2012-07-17T16:59:56.787 回答