2015-06-24 2 views
-3

Я просто пытаюсь сделать пустой объект слайда, делая это -Как создать пустой объект слайда?

Microsoft.Office.Interop.PowerPoint.Slide empty_slide = new Microsoft.Office.Interop.PowerPoint.Slide(); 

Ошибка:

Unhandled Exception: System.Runtime.InteropServices.COMException: Retrieving the 
COM class factory for component with CLSID {91493445-5A91-11CF-8700-00AA0060263 
B} failed due to the following error: 80040154 Class not registered (Exception f 
rom HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). 
    at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOn 
ly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Bo 
olean& bNeedSecurityCheck) 
    at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipChec 
kThis, Boolean fillCache, StackCrawlMark& stackMark) 
    at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean s 
kipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) 
    at System.Activator.CreateInstance(Type type, Boolean nonPublic) 
    at System.Activator.CreateInstance(Type type) 
    at Program.GetBulletPointTransition(Application PowerPoint_App, Presentation 
presentation) in c:\Users\PEAK\Documents\Peak Sourcing\Work\ppt_test\ppt_test\Pr 
ogram.cs:line 539 
    at Program.Main(String[] args) in c:\Users\PEAK\Documents\Peak Sourcing\Work\ 
ppt_test\ppt_test\Program.cs:line 79 
Press any key to continue . . . 

Я был бы признателен за помощь.

+4

Почему вы устанавливаете его нулевым? null отличается от пустого слайда! Какая ошибка? – dotctor

+0

Говорят что-то вроде «не задано экземпляру объекта». Хорошо, что я должен установить? – user1394252

+0

'var empty_slide = new Microsoft.Office.Interop.PowerPoint.Slide();' – dotctor

ответ

0

Просто удалите часть empty_slide = null; с вашего первого кода. Это должно сделать это. Используйте следующую -

Microsoft.Office.Interop.PowerPoint.Slide empty_slide = new Microsoft.Office.Interop.PowerPoint.Slide(); 
+0

См. Обновленный код. Он все еще дает ошибку – user1394252

1

ЗДЕСЬ ПРАВИЛЬНЫЙ ОТВЕТ:

Вы не должны напрямую создавать новые экземпляры класса Microsoft.Office.Interop.PowerPoint.Slide. Вместо этого, используйте код вроде следующего:

 Presentation ppt = pptApp.Presentations.Open(pptPath, WithWindow: MsoTriState.msoFalse); 
     int newSlideNumber = (ppt.Slides.Count + 1); 
     var slide = ppt.Slides.Add(newSlideNumber, PpSlideLayout.ppLayoutTitleOnly); 
     slide.Shapes[1].TextFrame.TextRange.Text = "hello!"; 

ПРИМЕЧАНИЕ: В случае, если вы проверили соответствующие форумы для возможных ответов на ваш вопрос, вы не должны изменять параметры сборки проекта, чтобы использовать целевую платформу х86.

Смежные вопросы