Установить столбец таблицы в Word с помощью Powershell - PullRequest
0 голосов
/ 17 октября 2018

Я строю на скрипте Powershell, который собирает набор данных, чтобы заполнить его в текстовый документ.Впервые я работаю с Powershell в сочетании с Word.Об этом очень мало информации, поэтому, если кто-то знает хороший источник, я был бы признателен за это!

В данный момент я застрял с форматированием моей таблицы.Я хочу изменить ширину столбцов.

Я пробовал следующие вещи:

    $DocPath = "E:\Temp\Registry\EXCEL_ALLE\Version_AllFromExcel_Aktuell"
    $Word = New-Object -ComObject Word.Application
    $Word.Visible = $True
    $Document = $Word.Documents.Add($DocPath + "\IIS Application Pool.dotm")
    $Selection = $Word.Selection
    $Range = @($Selection.Paragraphs)[-1].Range

    $RowsCount = $hash.Count +1
    $ColumnCount = $Columns.Count
    $Table = $Selection.Tables.add(
    $Selection.Range,($RowsCount),2,

   [Microsoft.Office.Interop.Word.WdDefaultTableBehavior]::wdWord9TableBehavior,


   $Table.cell($Row,1).PreferredWidthType = 1
   $Table.cell($Row,1).Width = 400
   $Table.Row(1,1).Width = 400
   $Table.Width = 400
   $Table.Column(1).Width = 400

Но это не работает, команда .cell редактирует только 1 ячейку (конечно :() .. Все другие комбинации, которые я пробовал, возвращали мне ошибку, например

"Свойство 'Ширина' не может быть найдено для этого объекта."

Или

Ошибка вызова метода, поскольку [System .__ ComObject] не содержит метод с именем 'Столбец'.

Как установить значение «С» для определенного столбца?

1 Ответ

0 голосов
/ 17 октября 2018

Если вы внимательно прочитаете документацию для Tables.Add, вы увидите, что последний параметр, AutoFitBehavior, принимает член перечисления WdAutoFitBehavior.Три доступных в настоящее время значения:

  • wdAutoFitContent
  • wdAutoFitFixed
  • wdAutoFitWindow

Вам нужно второе, wdAutoFitFixed по порядкучтобы установить точную ширину столбца.

Обратите внимание, что ваш код использует Table.Column(1) - это должно быть: Table.Columns(1) - вы пропускаете s в столбце s .

Свойство Column.Width предполагает, что значение будет в Points .Если вы хотите указать сантиметры или дюймы, вам нужна функция преобразования Word.Application, например CentimetersToPoints или InchesToPoints.На вашем языке программирования это выглядит примерно так:

$Table.Columns(1).Width = $Word.CentimetersToPoints(10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...