簡體   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