[英]powershell - MS-Word document parsing - Get a table's caption text
我正在使用powershell解析一个单词2007。 我想获取每个表格的标题并将其打印到屏幕上。
这是我想做的事情,但是打印标题行不起作用。
$wd = New-Object -ComObject Word.Application
$wd.Visible = $true
$doc = $wd.Documents.Open($filename)
foreach ($table in $doc.Tables)
{
#print table caption
Write-Host $table.Caption.Range.Text #This does not work
#Print Table contents
foreach ($row in $table.Rows)
{
Write-Host $row.Range.Text
}
}
是否可以获取与表格关联的标题?
标题不是表对象的属性,它们只是文本。 但是,您可以执行以下操作来查找表格标题:
$style = $doc.Styles | ? { $_.NameLocal -eq 'Caption' }
$wd.Selection.Find.Style = $style
$wd.Selection.Find.Text = 'Table' # if table captions are labeled "Table"
$wd.Selection.Find.Execute()
由于通配符匹配在Word中是非贪婪的,因此您可能必须执行以下操作:
$style = $doc.Styles | ? { $_.NameLocal -eq 'Caption' }
$wd.Selection.Find.Style = $style
$wd.Selection.Find.Wrap = 0
while ($wd.Selection.Find.Execute()) {
if ($wd.Selection.Text -like 'Table*') {
# do stuff
}
$wd.Selection.MoveRight()
}
上面的内容仅按样式进行匹配,因此应选择整个标题。 MoveRight()
之后取消选择标题,因此下一次迭代将找到下一个匹配项,直到文档结束,在该处搜索停止( .Find.Wrap = 0
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.