Створення документа 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. Також тут є ряд докладних статей на цю тему.
.