我有一张幻灯片的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();
}
答案 0 :(得分:1)
您可以使用application.presentation.slides循环所有幻灯片,并对slide.shapes集合中的每个形状检查shape.type,当type是图表调用shape.delete