Spire.Presentation支持将一个PowerPoint文件里的图表复制到另一个PowerPoint文件里。本文将介绍如何复制图表到另一个文件,然后删除源文件的图表。
2个原始文件截图:
完整代码:
C#
//创建PPT对象
Presentation ppt = new Presentation();
//加载包含图表的源文件
ppt.LoadFromFile(@"CopyChartSample.pptx");
//创建PPT对象
Presentation newPPT = new Presentation();
//加载目标文件
newPPT.LoadFromFile(@"DesSample.pptx");
//获取第一张幻灯片
ISlide slide = newPPT.Slides[0];
//判断第一张幻灯片里第一个形状是否为图表
if (ppt.Slides[0].Shapes[0] is IChart)
{
//将形状转换为图表
IChart chart = ppt.Slides[0].Shapes[0] as IChart;
//使用CreateChart方法复制图表到目标文件的指定位置
slide.Shapes.CreateChart(chart, new RectangleF(100, 100, 500, 300), -1);
//删除源文件里的图表
ppt.Slides[0].Shapes.RemoveAt(0);
}
//保存目标文件为新文件
newPPT.SaveToFile("CopyChart.pptx", FileFormat.Pptx2010);
//保存源文件为一个新文件
ppt.SaveToFile("DeleteChart.pptx", FileFormat.Pptx2010);
VB.NET
'创建PPT对象
Dim ppt As New Presentation()
'加载包含图表的源文件
ppt.LoadFromFile("CopyChartSample.pptx")
'创建PPT对象
Dim newPPT As New Presentation()
'加载目标文件
newPPT.LoadFromFile("DesSample.pptx")
'获取第一张幻灯片
Dim slide As ISlide = newPPT.Slides(0)
'判断第一张幻灯片里第一个形状是否为图表
If TypeOf ppt.Slides(0).Shapes(0) Is IChart Then
'将形状转换为图表
Dim chart As IChart = TryCast(ppt.Slides(0).Shapes(0), IChart)
'使用CreateChart方法复制图表到目标文件的指定位置
slide.Shapes.CreateChart(chart, New RectangleF(100, 100, 500, 300), -1)
'删除源文件里的图表
ppt.Slides(0).Shapes.RemoveAt(0)
End If
'保存目标文件为新文件
newPPT.SaveToFile("CopyChart.pptx", FileFormat.Pptx2010)
'保存源文件为一个新文件
ppt.SaveToFile("DeleteChart.pptx", FileFormat.Pptx2010)
结果文件截图: