PowerShell 技能连载 - 将结果通过管道直接传给 Office Word

只需要几行代码,您就可以实现一个 Out-OfficeWord 指令。它接受传入的数据并将它们插入一个新的 Word 文档中(假设 Word 已经安装)。

#requires -Version 1

function Out-OfficeWord
{
  param
  (
    $Font = 'Courier',

    $FontSize = 12,

    $Width = 80,

    [switch]
    $Landscape
  )

  $Text = $Input | Out-String -Width $Width

  $WordObj = New-Object -ComObject Word.Application
  $document = $WordObj.Documents.Add()
  $document.PageSetup.Orientation = [Int][bool]$Landscape
  $document.Content.Text = $Text
  $document.Content.Font.Size = $FontSize
  $document.Content.Font.Name = $Font
  $document.Paragraphs | ForEach-Object { $_.SpaceAfter = 0 }
  $WordObj.Visible = $true
}

要在 Word 中建立一个正在运行中的进程列表,只需要运行这段代码:

Get-Process | Out-OfficeWord -Landscape -Font Consolas -FontSize 8

接下来,您可以将结果另存为 PDF、改进格式,或打印出来。

PowerShell 技能连载 - 将结果通过管道直接传给 Office Word

http://blog.vichamp.com/2015/11/23/piping-results-straight-into-office-word/

作者

吴波

发布于

2015-11-23

更新于

2022-07-06

许可协议

评论