繁体   English   中英

powershell-MS-Word文档解析-获取表的标题文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM