从ppt演示文稿中select某个幻灯片并粘贴excel图表

我有以下代码来打开工作表,复制一个图表,打开演示文稿并将其粘贴。

它工作得很好,对于一个图表和一个幻灯片,但在XLSM有8个图表,所以在PPTX 8个幻灯片,我不知道如何select,例如,第二个图表,并将其粘贴到第二个或第三个幻灯片的介绍。

PowerPoint.Slide curSlide = pptApp.ActiveWindow.View.Slide; 它select当前幻灯片或幻灯片1。

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.Office.Core; using xlNS = Microsoft.Office.Interop.Excel; using PowerPoint = Microsoft.Office.Interop.PowerPoint; using Graph = Microsoft.Office.Interop.Graph; using System.Runtime.InteropServices; namespace WindowsFormsApplication3 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { try { xlNS.Application excelApplication = null; xlNS.Workbook excelWorkBook = null; xlNS.Worksheet targetSheet = null; xlNS.ChartObjects chartObjects = null; xlNS.ChartObject existingChartObject = null; String Excelpath = "C:\\Users\\Diego\\Desktop\\Indicador Mensal.xlsm"; excelApplication = new xlNS.Application();//Instancia o excel e abre o XLSM excelWorkBook = excelApplication.Workbooks.Open(Excelpath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); PowerPoint.Application pptApp = new PowerPoint.Application(); pptApp.Presentations.Open("C:\\Users\\Diego\\Desktop\\Teste.pptx", MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue); //Abre o PPTX PowerPoint.Slide curSlide = pptApp.ActiveWindow.View.Slide; xlNS.Worksheet Ws = new xlNS.Worksheet(); Ws = (xlNS.Worksheet)excelWorkBook.Worksheets[1];//Número da Planilha que contém o gráfico Ws.Activate(); targetSheet = (xlNS.Worksheet)(excelWorkBook.Worksheets["Assumidos no Prazo"]); chartObjects = (xlNS.ChartObjects)(targetSheet.ChartObjects(Type.Missing)); existingChartObject = (xlNS.ChartObject)(chartObjects.Item(1)); existingChartObject.Copy(); curSlide.Shapes.Paste(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { MessageBox.Show("Finalizado"); } } } 

}

用这个代码解决了这个问题:

 p = pptApp.ActivePresentation; slides = p.Slides; slides[3].Select(); Ppt.Slide slide3 = pptApp.ActiveWindow.View.Slide;