本文介绍了从ppt演示文稿中选择特定幻灯片并粘贴excel图表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用以下代码打开工作表、复制一个图表、打开演示文稿并粘贴它。
它可以很好地处理一个图表和一张幻灯片,但是在XLSM中有8个图表,所以8张pptx格式的幻灯片,我不知道如何选择第二个图表并将其粘贴到演示文稿的第二张或第三张幻灯片中。
使用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;更多推荐
从ppt演示文稿中选择特定幻灯片并粘贴excel图表
发布评论