用表等读取word文档(* .doc)内容

时间:2012-10-27 23:36:19

标签: powershell ms-word

我有一个word文档(2003)。我正在使用Powershell来解析文档的内容。 该文档在顶部包含几行文本,十几个表具有不同的列数,然后是一些更多的文本。

我希望能够像下面这样阅读文档:

  1. 阅读文件(制作必要的物品等)
  2. 获取每行文字
  3. 如果不是表的一部分,则处理为文本和写入输出
  4. 否则
  5. 如果是表格的一部分
  6. 获取表格编号(按订单)并根据列
  7. 解析输出
  8. 结束如果
  9. 以下是我已经开始编写的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
    }
    

    我不确定段落是否是我想要的。有什么更适合我的目的吗? 我现在得到的只是文件的全部内容。我如何控制我得到的东西。就像我想得到一条线,能够确定它是否是表的一部分,并根据它的数字表采取行动。

1 个答案:

答案 0 :(得分:6)

您可以通过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
}