C# 从ppt演示文稿中选择特定幻灯片并粘贴excel图表

C# 从ppt演示文稿中选择特定幻灯片并粘贴excel图表,c#,visual-studio-2010,excel,powerpoint,C#,Visual Studio 2010,Excel,Powerpoint,我有以下代码来打开工作表、复制图表、打开演示文稿并粘贴它 对于一张图表和一张幻灯片,它工作得很好,但是在XLSM中,PPTX中有8张图表和8张幻灯片,我不知道如何选择第二张图表并将其粘贴到演示文稿的第二张或第三张幻灯片中 使用PowerPoint.Slide curSlide=pptApp.ActiveWindow.View.Slide;它选择当前幻灯片或幻灯片1 using System; using System.Collections.Generic; using System.Compo

我有以下代码来打开工作表、复制图表、打开演示文稿并粘贴它

对于一张图表和一张幻灯片,它工作得很好,但是在XLSM中,PPTX中有8张图表和8张幻灯片,我不知道如何选择第二张图表并将其粘贴到演示文稿的第二张或第三张幻灯片中

使用PowerPoint.Slide curSlide=pptApp.ActiveWindow.View.Slide;它选择当前幻灯片或幻灯片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;