如何使用Powershell创建新的Powerpoint演示文稿
我正在尝试从头开始使用Powershell创建一个新的Powerpoint演示文稿,但对象模型有问题。根据我从中得到的一些代码:如何使用Powershell创建新的Powerpoint演示文稿,powershell,com,powerpoint,Powershell,Com,Powerpoint,我正在尝试从头开始使用Powershell创建一个新的Powerpoint演示文稿,但对象模型有问题。根据我从中得到的一些代码: Add-type -AssemblyName office $Application = New-Object -ComObject powerpoint.application $application.visible = [Microsoft.Office.Core.MsoTriState]::msoTrue $slideType = "microsoft.off
Add-type -AssemblyName office
$Application = New-Object -ComObject powerpoint.application
$application.visible = [Microsoft.Office.Core.MsoTriState]::msoTrue
$slideType = "microsoft.office.interop.powerpoint.ppSlideLayout" -as [type]
$blanklayout = $slideType::ppLayoutTitleOnly
$presentation = $application.Presentations.add()
$slide = $presentation.slides.addSlide(0,$blanklayout)
但收到一个错误:
Ausnahme beim Aufrufen von "AddSlide" mit 2 Argument(en): "Typenkonflikt. (Ausnahme von HRESULT: 0x80020005
(DISP_E_TYPEMISMATCH))"
In C:\Users\Uwe\Dropbox\Powerpoint.ps1:12 Zeichen:1
+ $slide = $presentation.slides.addSlide(0,$blanklayout)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ComMethodTargetInvocation
如何从对象模型中获得正确的布局并添加新幻灯片?我发现在下面的链接中引用此代码很有帮助 再看我的例子。更改值(15)将确定要插入的新幻灯片的样式
$slide = $Presentation.Slides.Add($presentation.Slides.Count + 1, 15)
我发现在下面的链接中引用此代码很有帮助 再看我的例子。更改值(15)将确定要插入的新幻灯片的样式
$slide = $Presentation.Slides.Add($presentation.Slides.Count + 1, 15)
我看到的第一件事是,您需要加载包含microsoft.office.interop.powerpoint.ppSlideLayout类型的程序集。程序集的名称是microsoft.office.interop.powerpoint。因此:
add-type -assembly microsoft.office.interop.powerpoint
要让它为我工作,我需要做的第二件事是使用Add方法而不是AddSlide方法
$slide = $presentation.slides.add(1,$blanklayout)
如果知道整数对应的布局,$blanklayout可以替换为整数。然而,像您这样使用代码更容易自我记录。15是ppLayoutLargeObject的值
第一个参数是介于1和($presentation.slides.count+1)之间的整数。如果选择的值小于最大值,则幻灯片将插入幻灯片组中的该位置,幻灯片编号增加1后,幻灯片将插入该位置。如果选择“最大”,幻灯片将添加到末尾
请注意,“Add”方法在文档中标记为内部API。可能没什么大不了的,但微软有更多理由在未来版本的Powerpoint中更改该API,而不是更改未标记为“内部”的API。使用AddSlideAPI看起来更复杂。说明您必须使用幻灯片来获取自定义布局。我看到的第一件事是,您需要加载包含microsoft.office.interop.powerpoint.ppSlideLayout类型的程序集。程序集的名称是microsoft.office.interop.powerpoint。因此:
add-type -assembly microsoft.office.interop.powerpoint
要让它为我工作,我需要做的第二件事是使用Add方法而不是AddSlide方法
$slide = $presentation.slides.add(1,$blanklayout)
如果知道整数对应的布局,$blanklayout可以替换为整数。然而,像您这样使用代码更容易自我记录。15是ppLayoutLargeObject的值
第一个参数是介于1和($presentation.slides.count+1)之间的整数。如果选择的值小于最大值,则幻灯片将插入幻灯片组中的该位置,幻灯片编号增加1后,幻灯片将插入该位置。如果选择“最大”,幻灯片将添加到末尾
请注意,“Add”方法在文档中标记为内部API。可能没什么大不了的,但微软有更多理由在未来版本的Powerpoint中更改该API,而不是更改未标记为“内部”的API。使用AddSlideAPI看起来更复杂。上面说你必须使用幻灯片来获得自定义布局