Word повреждает таблицы, добавленные через PowerShell - PullRequest
0 голосов
/ 21 октября 2019

Я пытался заполнить текстовые шаблоны и таблицы 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 в соответствующем всплывающем окне, которое гласит «Таблица в этом документе повреждена. "То, как это отображается визуально в документе, зависит от содержимого таблицы. Я пытался исправить поврежденные таблицы с помощью функции восстановления слов, но видимого результата не было.

...