使用Powershell在Word中设置表列
我正在构建一个Powershell脚本,该脚本收集一组数据并将其填充到word文档中。 这是我第一次将Powershell与Word结合使用。关于这方面的信息很少,所以如果有人知道一个好的来源,我将不胜感激 目前我正忙于格式化我的表格。我想编辑列的宽度 我试过以下方法:使用Powershell在Word中设置表列,powershell,ms-word,Powershell,Ms Word,我正在构建一个Powershell脚本,该脚本收集一组数据并将其填充到word文档中。 这是我第一次将Powershell与Word结合使用。关于这方面的信息很少,所以如果有人知道一个好的来源,我将不胜感激 目前我正忙于格式化我的表格。我想编辑列的宽度 我试过以下方法: $DocPath = "E:\Temp\Registry\EXCEL_ALLE\Version_AllFromExcel_Aktuell" $Word = New-Object -ComObject Word.A
$DocPath = "E:\Temp\Registry\EXCEL_ALLE\Version_AllFromExcel_Aktuell"
$Word = New-Object -ComObject Word.Application
$Word.Visible = $True
$Document = $Word.Documents.Add($DocPath + "\IIS Application Pool.dotm")
$Selection = $Word.Selection
$Range = @($Selection.Paragraphs)[-1].Range
$RowsCount = $hash.Count +1
$ColumnCount = $Columns.Count
$Table = $Selection.Tables.add(
$Selection.Range,($RowsCount),2,
[Microsoft.Office.Interop.Word.WdDefaultTableBehavior]::wdWord9TableBehavior,
$Table.cell($Row,1).PreferredWidthType = 1
$Table.cell($Row,1).Width = 400
$Table.Row(1,1).Width = 400
$Table.Width = 400
$Table.Column(1).Width = 400
但是它不起作用,.cell命令只编辑1个单元格(当然:()。。
其他的一切我都试着让我失败
“在此对象上找不到属性“Width”。”
或
方法调用失败,因为[System.\u ComObject]不包含
名为“Column”的方法
如何设置某一列的With?如果您阅读了
表的文档。请仔细添加,您将看到最后一个参数AutoFitBehavior
,包含枚举WdAutoFitBehavior
的成员。当前可用的三个值:
- wdAutoFitContent
- 自动安装
- WDAutofit窗口
为了设置精确的列宽,您需要第二个参数,wdautofitfix
请注意,您的代码使用了表。列(1)
-这应该是:表。列(1)
-您缺少列s中的s
列.Width
属性要求值以点为单位。如果要指定厘米或英寸,则需要字.Application
的转换函数,例如厘米停止点
或英寸停止点
。在编程语言中,它如下所示
$Table.Columns(1).Width = $Word.CentimetersToPoints(10)
如果您阅读表的文档。请仔细添加
,您将看到最后一个参数AutoFitBehavior
,它是枚举WdAutoFitBehavior
的成员。三个当前可用的值:
- wdAutoFitContent
- 自动安装
- WDAutofit窗口
为了设置精确的列宽,您需要第二个参数,wdautofitfix
请注意,您的代码使用了表。列(1)
-这应该是:表。列(1)
-您缺少列s中的s
列.Width
属性要求值以点为单位。如果要指定厘米或英寸,则需要字.Application
的转换函数,例如厘米停止点
或英寸停止点
。在编程语言中,它如下所示
$Table.Columns(1).Width = $Word.CentimetersToPoints(10)
但是..你放在桌子上的wdAutoFitContent
难道不起作用吗?西奥,再次感谢;)我想我必须删除这个,我编辑了我的帖子。。它希望拉伸表格,以便使用整个页面宽度。否则它看起来不太好…我看到您删除了以下行[Microsoft.Office.Interop.Word.WdAutoFitBehavior]::wdAutoFitContent
。。你试过wdAutoFitWindow
吗?谢谢,这几乎就是我想要的!但是,没有办法具体说明具体的数字吗?因为像这样,两行都相当大,我更愿意让第一列的宽度变小,第二列应该得到剩余的空间..但是。。您在桌上设置的wdAutoFitContent
难道不起作用吗?西奥,再次感谢;)我想我必须删除这个,我编辑了我的帖子。。它希望拉伸表格,以便使用整个页面宽度。否则它看起来不太好…我看到您删除了以下行[Microsoft.Office.Interop.Word.WdAutoFitBehavior]::wdAutoFitContent
。。你试过wdAutoFitWindow
吗?谢谢,这几乎就是我想要的!但是,没有办法具体说明具体的数字吗?因为像这样,两行都很大,我更愿意让第一列的宽度变小,第二列应该得到剩余的空间。非常感谢cindy。顺便问一下,您是否讨论过此文档@卢卡斯,如果你喜欢阅读C#,那么这个链接是可能的。不过,我主要使用VBA引用,它的语法可能更接近Powershell所使用的语法。请注意,该网站速度非常慢,可能是因为他们更喜欢人们使用新的JSAPI(显示速度更快),并试图阻止使用COM对象模型。。。另一个选项是使用Word应用程序(Alt+F11)中的VBA编辑器和对象浏览器(F2),单击术语,然后转到VBA帮助主题。非常感谢cindy。顺便问一下,您是否讨论过此文档@卢卡斯,如果你喜欢阅读C#,那么这个链接是可能的。不过,我主要使用VBA引用,它的语法可能更接近Powershell所使用的语法。请注意,该网站速度非常慢,可能是因为他们更喜欢人们使用新的JSAPI(显示速度更快),并试图阻止使用COM对象模型。。。另一个选项是使用Word应用程序(Alt+F11)中的VBA编辑器和对象浏览器(F2),单击术语,然后转到VBA帮助主题。