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

Ano*_*oop 5 powershell ms-word

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

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

  1. 阅读文件(制作必要的物品等)
  2. 获取每行文字
  3. 如果不是表的一部分,则处理为文本和写入输出
  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
}
Run Code Online (Sandbox Code Playgroud)

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

Ans*_*ers 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
}
Run Code Online (Sandbox Code Playgroud)