Копирование диапазона ячеек из Excel в PowerPoint с помощью VSTO - PullRequest
2 голосов
/ 12 июля 2010

Как скопировать диапазон ячеек из Excel в Powerpoint. Я хочу сделать то же самое, что и когда

Вы выбираете диапазон ячеек, копируете в буфер обмена, а затем вставляете слайд в powerpoint.

Я пробовал Range.Copy (отсутствует) и Slide.Shapes.Paste этот код, но он не работает. он генерирует исключение, например 'Shapes (неизвестный член): неверный запрос. Буфер обмена пуст или

содержит данные, которые нельзя вставить сюда. ' буфер обмена содержит данные, хотя поиск в Google показывает, что другие люди тоже

сталкиваюсь с этой проблемой в 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

при вставке всего диапазона. Как мне скопировать весь диапазон, не повторяя каждый

cell, Есть предложения?

1 Ответ

1 голос
/ 12 июля 2010

Что произойдет, если вы используете:

app.ActiveWindow.View.Paste(); 
// instead of
// pptSlide.Shapes.Paste();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...