Сервісний центр VPSGroup ремонт комп'ютерної техніки, заправка картриджів, ремонт оргтехніки, Київ, Виставковий центр, Васильківська, 55

Створення документа Word за допомогою PowerShell.

Іноді доводиться створювати за допомогою PowerShell різні документи (звіти по серверам, вибірки з логів та ін. Подібна інформація). Зазвичай дані зберігаються у вигляді звичайного текстового файлу, або конвертуються в HTML. Але якщо у вас на комп'ютері встановлений MS Office, то дані можна зберігати у вигляді документа Word.Отже, припустимо, що нам необхідно створити новий документ і додати в нього текст.

Насамперед запускаємо Word:

$ Word = New-Object -ComObject Word.Application

Додаток запущено, але воно працює у фоновому режимі і залишається невидимим для користувача. В принципі, для створення документа це не обов'язково, але якщо ви хочете бачити результат, то треба зробити його видимим.Для цього необхідно змінити властивість Visible:

$ Word.Visible = $ true

Створено новий документ:

$ Document = $ Word.Documents.Add ()

документ відкритий, але перед тим, як приступити до його редагування, необхідно виділити фрагмент тексту або весь документ:

$ Selection = $ Word.Selection

Тепер додамо в документ текст за допомогою методу TypeText:

$ Selection.TypeText ( "PowerShell & Word")

і збережемо документ в файл:

$ File = C: \ Temp \ psword.doc
$ Document.SaveAs ([ref] $ File)

Закриваємо документ і виходимо з Word:

$ Document.Close ()
$ Word.Quit ()



А тепер відкриємо створений файл. Для цього знову запускаємо Word і робимо його видимим:

$ Word = New-Object -ComObject Word.Application
$ Word.Visible = $ true

Відкриваємо документ:

$ File = "C: \ Temp \ psword.doc"
$ Document = $ Word.Document. Open ($ File)



І дивимося, що вийшло.



Тепер додамо ще пару рядків тексту. А для того, щоб розбити текст на рядки, використовуємо метод TypeParagraph:

$ Selection = $ Word.Selection
$ Selection.TypeParagraph ()
$ Selection.TypeText ( "Power")
$ Selection.TypeText ( "Shell")
$ Selection.TypeParagraph ()
$ Selection.TypeText ( "& ")
$ Selection.TypeParagraph ()
$ Selection.TypeText (" Word ")



Перевіряємо результат



Ну і на завершення трохи прикрасимо текст. Для цього виберемо шрифт:

$ Selection.Font.Name = "Verdana"

Зробимо шрифт жирним (Bold) і похилим (Italic):

$ Selection .Font.Bold = $ True
$ Selection.Font.Italic = $ True

Збільшимо розмір шрифту:

$ Selection.Font.Size = 18

І змінимо колір на зелений:

$ Selection.Font.Color = "wdColorGreen"

Додаємо текст:

$ Selection.TypeText ( "Word & PowerShell" )



В результаті отримаємо таку картину



Подивитися доступні кольори можна командою:

[Enum] :: GetNames ([Microsoft.Office.Interop.Word.wdColor])



І ще, якщо необхідно зберегти документ в певному форматі (наприклад для забезпечення сумісності) то формат можна вказати явно. Вивести список доступних форматів можна командою:

[Enum] :: GetNames ([Microsoft.Office.Interop.Word.wdSaveFormat])



Для прикладу збережемо документ у форматі OpenDocument:

$ File = "C: \ Temp \ psword.doc "
$ Document.SaveAs ([ref] $ SaveFormat :: wdFormatOpenDocumentText)
$ Word.Quit ()



На цьому, мабуть, все. Дізнатися більше про властивості і методи об'єкта Word.Selection, що використовується для редагування тексту, можна на MSDN. Також тут є ряд докладних статей на цю тему.

.