C# 如何将图表从excel文件复制到power point?

C# 如何将图表从excel文件复制到power point?,c#,excel,.net-4.0,office-interop,C#,Excel,.net 4.0,Office Interop,我用C#代码构建了一个excel文件,其中包含一些图表。我正在通过Microsoft.Office.Interop.Excel使用Excel 这很好,但同时我需要生成一个包含相同图表的PowerPoint演示文稿 有办法复制吗 Microsoft.Office.Interop.Excel.ChartObject到PowerPoint文件?或者以编程方式将这些图表复制到PowerPoint演示文稿中的任何其他方法?我想这应该可以 using xlNS = Microsoft

我用C#代码构建了一个excel文件,其中包含一些图表。我正在通过Microsoft.Office.Interop.Excel使用Excel

这很好,但同时我需要生成一个包含相同图表的PowerPoint演示文稿

有办法复制吗
Microsoft.Office.Interop.Excel.ChartObject
到PowerPoint文件?或者以编程方式将这些图表复制到PowerPoint演示文稿中的任何其他方法?

我想这应该可以

            using xlNS = Microsoft.Office.Interop.Excel;
            using Microsoft.Office.Interop.PowerPoint;

            xlNS.ApplicationClass excelApplication = null;
            xlNS.Workbook excelWorkBook = null;
            xlNS.Worksheet targetSheet = null;
            xlNS.ChartObjects chartObjects = null;
            xlNS.ChartObject existingChartObject = null;
            Microsoft.Office.Interop.PowerPoint.ShapeRange shapeRange = null;
            Microsoft.Office.Interop.PowerPoint.Slide CurSlide;


            excelApplication = new xlNS.ApplicationClass();//Create New Excel
            excelWorkBook = excelApplication.Workbooks.Open(Excelpath,
                 paramMissing, paramMissing, paramMissing, paramMissing, paramMissing,
                 paramMissing, paramMissing, paramMissing, paramMissing, paramMissing,
                 paramMissing, paramMissing, paramMissing, paramMissing);

            Ws = (Excel.Worksheet)excelWorkBook.Worksheets[6];//Your Sheet that contain Chart
            Ws.Activate();
            targetSheet = (xlNS.Worksheet)(excelWorkBook.Worksheets["SheetName"]);
            chartObjects = (xlNS.ChartObjects)(targetSheet.ChartObjects(paramMissing));
            existingChartObject = (xlNS.ChartObject)(chartObjects.Item(1));

            existingChartObject.Copy();
            shapeRange = CurSlide.Shapes.Paste();//Paste it to your Current Slide
            shapeRange.Left = 435;
            shapeRange.Top = 80; //Formatting your chart

您可以使用大多数(几乎所有)Excel中可用的相同方法,使用VBA将图表直接构建到powerpoint中。除非您出于其他原因需要Excel工作簿中的图表。我意识到在两个不同的应用程序之间复制对象不是最佳解决方案,但由于我需要让用户选择是否需要Excel或PowerPoint中的图表,或者,即使两者同时存在,我也不认为在已有Excel逻辑的情况下,为PowerPoint编写单独的逻辑是有意义的。谢谢您提供了一个很好的示例。出于某种原因,我认为这将比简单的复制粘贴更难。