6

私はワード文書(2003)を持っています。Powershell を使用してドキュメントのコンテンツを解析しています。ドキュメントには、上部に数行のテキスト、列数の異なる多数の表、さらにテキストが含まれています。

私は以下のようなドキュメントを読むことができると期待しています:

  1. ドキュメントを読む(必要なオブジェクトを作るなど)
  2. テキストの各行を取得する
  3. テーブルの一部でない場合は、テキストとして処理し、Write-Output
  4. そうしないと
  5. テーブルの一部の場合
  6. テーブル番号を (順序で) 取得し、列に基づいて出力を解析する
  7. 終了する場合

以下は、私が書き始めたpowershellスクリプトです。

$objWord = New-Object -Com Word.Application
$objWord.Visible = $false
$objDocument = $objWord.Documents.Open($filename)
$paras = $objDocument.Paragraphs
foreach ($para in $paras) 
{ 
    Write-Output $para.Range.Text
}

Paragraphs が必要かどうかはわかりません。私の目的にもっと適したものはありますか?私が今得ているのは、ドキュメントのコンテンツ全体です。取得したものを制御するにはどうすればよいですか。行を取得したいのと同じように、それがテーブルの一部であるかどうかを判断し、それがどの番号テーブルであるかに基づいてアクションを実行できるようにします。

4

1 に答える 1

7

Tablesコレクションを介して、Word 文書内のテーブルを列挙できます。およびプロパティを使用するRowsColumns、特定のテーブルの行/列の数を決定できます。オブジェクトを介して個々のセルにアクセスできCellます。

ドキュメント内の各テーブルの最後の行と最後の列のセルの値を出力する例:

$wd = New-Object -ComObject Word.Application
$wd.Visible = $true
$doc = $wd.Documents.Open($filename)
$doc.Tables | ForEach-Object {
  $_.Cell($_.Rows.Count, $_.Columns.Count).Range.Text
}
于 2012-10-28T11:13:46.303 に答える