麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > PowerShell > 正文

powershell操作word詳解

2020-03-26 19:24:44
字體:
來源:轉載
供稿:網友

powershell操作word

我假設許多讀者用PowerShell生成服務器、事件以及Windows網絡上各種數據的報表。您也許創(chuàng)建過純文本文件,甚至漂亮的HTML報表。但是您也可以用上Microsoft Word,當然,前提是您已經安裝了Word。在這個系列的第二部分,我將會向您演示如何用PowerShell為Word文檔套用樣式。

創(chuàng)建Word應用程序對象
PowerShell可以通過COM接口控制Word應用程序。有趣的地方是,雖然您可以交互式地做所有的操作,但我希望您最終能夠用腳本操作一切。我們從創(chuàng)建一個Word程序對象開始。

復制代碼 代碼如下:

PS C:/> $word=new-object -ComObject "Word.Application"

如果您好奇的話,可以將這個對象輸出到 Get-Member 命令。我們將創(chuàng)建一系列對象,您可以將每一個對象通過管道輸出到 Get-Member 來探索它們。

 

下一步,我們創(chuàng)建一個文檔對象。

復制代碼 代碼如下:

PS C:/> $doc=$word.documents.Add()

現在,Word程序已經啟動,并且創(chuàng)建了一個新文檔,但是您在屏幕上看不到任何東西。通常這是正常的,因為我們需要它在后臺運行。但是如果您想查看所創(chuàng)建的文檔,您需要將應用程序的 Visible 屬性設置為 True。
復制代碼 代碼如下:

PS C:/> $word.Visible=$True

在我們插入文本之前,我們需要獲取焦點。創(chuàng)建一個 Selection 對象可以幫我們做一些諸如設置字體大小和顏色等操作,我們將在第二部分介紹這些操作。
復制代碼 代碼如下:

PS C:/> $selection=$word.Selection

用PowerShell在文檔中插入文本
現在光標在文檔的頂部,現在可以開始插入文本了。我們將用 Selection 對象的 TypeText() 方法插入當前的日期和時間。
復制代碼 代碼如下:

PS C:/> $selection.TypeText((Get-Date))

如果我們繼續(xù)插入文本,那么文本將會緊挨在日期的后面。現在我們用 TypeParagraph() 方法插入一個回車符。
復制代碼 代碼如下:

PS C:/> $selection.TypeParagraph()

讓我們繼續(xù)插入一些文本。我將用WMI獲取本地計算機的操作系統(tǒng)信息。
復制代碼 代碼如下:

PS C:/> $os=Get-WmiObject -class win32_OperatingSystem
PS C:/> $selection.TypeText("Operating System Information for $($os.CSName)")

由于我希望寫入所有的非系統(tǒng)屬性,所以我將快速遞創(chuàng)建一個數組用來保存所有的屬性名。
復制代碼 代碼如下:

PS C:/> $os.properties | select Name | foreach -begin {$props=@()} -proc {$props+="$($_.name)"}

現在我可以從 $os 獲取所有的屬性并插入Word文檔。很重要的一點是 TypeText() 的值是字符串型的,所以我需要將內聯(lián)的PowerShell表達式通過管道輸出到 Out-String。
復制代碼 代碼如下:

PS C:/> $selection.TypeText(($os | Select -Property $props | Out-String))

如果需要的話,還可以繼續(xù)插入文字和圖片。當完成操作以后,我將保存并關閉文檔。
復制代碼 代碼如下:

PS C:/> $doc.SaveAs([ref]"c:/work/osreport.docx")
PS C:/> $doc.Close()

請確認使用 [ref] 為文件路徑轉換數據類型。假設我不再創(chuàng)建新的文檔,那么剩下的就是關閉Word應用程序。
復制代碼 代碼如下:

PS C:/> $word.quit()

 

這些就是要做的所有事情。最終生成的Word文檔是可用的,雖然可能不太漂亮。在我的例子中發(fā)現一個問題:Word用的事非等寬字體,而PowerShell的輸出格式假設用的是等寬字體。(譯者注:可能會造成輸出的結果對不整齊)。

第二個示例

 

復制代碼 代碼如下:

$objWord = New-Object -Com Word.Application
$objWord.Visible = $true
$objMissingValue = [System.Reflection.Missing]::Value

 

$objDocument = $objWord.Documents.Add($objMissingValue, $objMissingValue, $objMissingValue, $objMissingValue)
$objParaHeader = $objDocument.Paragraphs.Add($objMissingValue)
$objParaHeader.Range.Style = "Heading 1"
$objParaHeader.Range.Text = "The power of Microsoft Windows PowerShell"
$objParaHeader.Range.InsertParagraphAfter()

$objParaText = $objDocument.Paragraphs.Add($objMissingValue)
$objParaText.Range.Text = "I will not say I have failed 1000 times; I will say that I have discovered 1000 ways that can cause failure – Thomas Edison."
$objParaText.Range.InsertParagraphAfter()

$filename = 'C://Script//PowerShell-Example.doc'
$objDocument.SaveAs($filename,
$objMissingValue, $objMissingValue,
$objMissingValue, $objMissingValue,
$objMissingValue, $objMissingValue,
$objMissingValue, $objMissingValue,
$objMissingValue, $objMissingValue)

##Once the script has added all of the required content the document should be closed:
$objDocument.Close()
$objWord.Quit()

 

 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产成人自拍小视频 | 亚洲天堂中文字幕在线观看 | av在线免费观看中文字幕 | 久久精品视频16 | 国产午夜精品一区二区三区在线观看 | 久久精品视频69 | 国产毛毛片一区二区三区四区 | 本色视频aaaaaa一级网站 | 欧美日韩一区,二区,三区,久久精品 | 欧美一区二区三区久久精品视 | 毛片在线看免费 | 国产午夜精品一区二区三区嫩草 | 久久久一区二区三区四区 | 黄视频免费在线 | 欧美一级毛片一级毛片 | www.com香蕉 | 欧美一级黄色片在线观看 | 日本精品久久久久 | 欧美乱淫 | av影院在线播放 | 免费午夜视频 | jizzzxxxxhd| 日本黄色免费片 | 丰满年轻岳中文字幕一区二区 | 一区二区三区四区视频在线观看 | 精品中文字幕在线播放 | 鲁丝片一区二区三区免费入口 | 国产亚洲自拍一区 | 成人精品一区二区三区中文字幕 | a视频在线免费观看 | 老司机免费福利午夜入口ae58 | 国产午夜亚洲精品午夜鲁丝片 | av在线播放免费 | 国产精品99久久久久久大便 | 污视频在线免费播放 | 超污视频在线看 | wwwxxx视频| 免费一级欧美 | 精品中文字幕视频 | 国产一级在线免费观看 | 99影视在线视频免费观看 |