Я пытался заполнить текстовые шаблоны и таблицы PowerShell и добавить их в документ Word. По большей части это работает нормально, за исключением того, что word всегда портит 5-ю таблицу (а также некоторые более поздние таблицы) независимо от содержимогоЯ использую PowerShell 5.1 и Word 2016 (v1909). Следующий код должен воспроизводить это поведение:
$word = New-Object -ComObject word.application
$word.Visible = $true
$document = $word.Documents.add()
$Selection = $word.Selection
for($i = 0; $i -lt 7; $i++){
$randomtext = (1..500 | % {
[char] (32..122 | Get-Random)
}) -join ''
$Selection.typetext($randomtext)
$Selection.typeparagraph()
$Range = @($selection.Paragraphs)[-1].Range
$table = $selection.tables.add($Range,2,5, `
[Microsoft.Office.Interop.Word.WdDefaultTableBehavior]::wdWord9TableBehavior, `
[Microsoft.Office.Interop.Word.WdAutoFitBehavior]::wdAutoFitWindow)
for($j = 1; $j -lt 6; $j++){
$Table.cell(1,$j).range.text = "heading$j"
$Table.cell(2,$j).range.text = "content$j"
}
$selection.homekey(6,1) > $null
$selection.endkey(6,1) > $null
$selection.moveright(1,1) > $null
$Selection.typeparagraph()
}
Я понятия не имею, делаю ли я что-то не так или это проблема со словом. Сейчас я сохраняю по одному документу каждые 4 таблицы и позже соединяю их вместе с InsertFile
, который отлично работает.
Редактировать: Чтобы уточнить «поврежден», используется формулировка Microsoft в соответствующем всплывающем окне, которое гласит «Таблица в этом документе повреждена. "То, как это отображается визуально в документе, зависит от содержимого таблицы. Я пытался исправить поврежденные таблицы с помощью функции восстановления слов, но видимого результата не было.