使用VSTO将一系列单元格从excel复制到powerpoint

时间:2010-07-12 13:17:57

标签: c# excel vsto

如何将一系列单元格从Excel复制到Powerpoint。我想做与

时相同的事情

选择一系列单元格,复制到剪贴板,然后粘贴到powerpoint中的幻灯片中。

我尝试过Range.Copy(缺失)和Slide.Shapes.Paste这段代码,但它无法正常工作。 它抛出一个例外'形状(未知成员):无效的请求。剪贴板为空或

包含可能未在此处粘贴的数据。 剪贴板确实包含数据,谷歌搜索错误显示其他人也

我正在使用的Excel 2007面临这个问题。

我的代码如下所示:

PowerPoint.ApplicationClass app = new Microsoft.Office.Interop.PowerPoint.ApplicationClass();
app.Visible = Microsoft.Office.Core.MsoTriState.msoTrue;
PowerPoint.Presentation pptPresentation = app.Presentations.Add(Microsoft.Office.Core.MsoTriState.msoTrue);

Excel.Worksheet NewWorksheet = ThisApplication.Sheets[i] as Excel.Worksheet;
// Add a blank slide to the presentation.
PowerPoint.Slide pptSlide = pptPresentation.Slides.Add(1, PowerPoint.PpSlideLayout.ppLayoutBlank);
pptSlide.Name = NewWorksheet.Name;

Excel.Range resultRange = NewWorksheet.UsedRange;
resultRange.Copy(missing); 
pptSlide.Shapes.Paste();

现在我逐个遍历excel表格的单元格,用

创建一个表格

在powerpoint和粘贴中的右行和列,但它很慢,我必须照顾

通过更改字体大小将数据拟合到幻灯片中,而这是通过powerpoint

完成的 粘贴整个范围时

。如何在不迭代每个

的情况下复制整个范围

细胞,有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用时会发生什么:

app.ActiveWindow.View.Paste(); 
// instead of
// pptSlide.Shapes.Paste();