; AutoIt Version: 3.3.12.0
#include <Word.au3>
#include <Array.au3>
$oWord = _Word_Create() ; Создать Новый экземпляр Word
$oDoc=_Word_DocAdd($oWord) ; Создать Итоговый новый пустой Word документ
Const $WrdConst=2.835 ; Константа для отступов. Чтобы отступ был 1 мм нужно умножить на константу 2.835
; К каждой отдельной таблице обращаемся по ее номеру
; ============= Создать Таблицу 1 через VBS
$oRange = _Word_DocRangeSet($oDoc, -2) ; Устанавить курсор в Конец Word файла
$oRange.InsertAfter('Таблица 1') ; Вставить данные
$oRange = _Word_DocRangeSet($oDoc, -2) ; Устанавить курсор в Конец Word файла
$oDoc.Tables.Add($oRange,2,3) ; Создать таблицу 2 строки, 2 столбца
$oDoc.Tables(1).Style = "Сетка таблицы" ; Нарисовать сетку таблицы
$oRange = _Word_DocRangeSet($oDoc, -2) ; Устанавить курсор в Конец Word файла
$oRange.InsertBreak($wdLineBreak) ; Enter
; Форматирование Таблицы 1
; Задать отступы во всей таблице 1 мм
$oDoc.Tables.Item(1).TopPadding=1*$WrdConst;
$oDoc.Tables.Item(1).BottomPadding=1*$WrdConst;
$oDoc.Tables.Item(1).RightPadding=1*$WrdConst;
$oDoc.Tables.Item(1).LeftPadding=1*$WrdConst;
;~ ; Аналогичные четыре свойства есть и у отдельной ячейки. Можно выделить нужную ячейку, столбец или строку
;~ $oDoc.Tables.Item(1).Cell(2,2).Select;
;~ $oDoc.Tables.Item(1).Columns.Item(1).Select;
;~ $oDoc.Tables.Item(1).Rows.Item(2).Select;
; Установить ширину столбцов и высоту строк
$oDoc.Tables.Item(1).Columns.Width=10*$WrdConst ; Установить ширину всех столбцов в таблице 10 мм
$oDoc.Tables.Item(1).Rows.Height=20*$WrdConst ; Установить высоту всех строк в таблице 20 мм
$oDoc.Tables.Item(1).Columns.Item(2).Width=20*$WrdConst ; Ширина 2-го столбца 20 мм
$oDoc.Tables.Item(1).Rows.Item(2).Height=10*$WrdConst ; Высота 2-й строки 10 мм
; Добавить строки и столбцы
$oDoc.Tables.Item(1).Columns.Add() ; Добавить Столбец справа
$oDoc.Tables.Item(1).Rows.Add() ; Добавить Строку снизу
; Выборочное Добавление строк и столбцов
$oColumn=$oDoc.Tables.Item(1).Columns.Item(1) ; Указатель на объект, после какого столбца вставить новый
$oDoc.Tables.Item(1).Columns.Add($oColumn) ; Вставляет новый столбец, после указанного ($oColumn)
$oRow=$oDoc.Tables.Item(1).Rows.Item(1) ; Указатель на объект, после какой строки вставить новую
$oDoc.Tables.Item(1).Rows.Add($oRow) ; Вставляет новую строку, после указанной ($oRow)
; Удалить из таблицы Первый столбец и четвертую строку:
$oDoc.Tables.Item(1).Columns.Item(1).Delete
$oDoc.Tables.Item(1).Rows.Item(4).Delete
; Запись текста в Таблицу 1
$oDoc.Tables.Item(1).Columns.Item(2).Cells.Item(2).Range.Text='Запись' ; Или так $oDoc.Tables.Item(1).Cell(2,2).Range.Text='Запись'
; Объединить ячейки
$oCel=$oDoc.Tables.Item(1).Cell(1,3) ; Указатель на объект - конечную ячейку($oCel)
$oDoc.Tables.Item(1).Cell(1,1).Merge($oCel) ; Объединяет начальную ячейку Cell(1,1) с конечной ячейкой ($oCel)
; Разбить ячейки
$oDoc.Tables.Item(1).Cell(1,1).Split(1,3);
; Подогнать размеры ячеек по содержимому
$oDoc.Tables.Item(1).Columns.AutoFit
; Внешний вид Таблицы 1
; Виды текстур черно-белая или в шкале серого
$wdTextureNone =0x00000000
$wdTexture2Pt5Percent =0x00000019
$wdTexture7Pt5Percent =0x0000004B
$wdTexture35Percent =0x0000015E
$wdTexture62Pt5Percent =0x00000271
$wdTextureSolid =0x000003E8
$wdTextureDarkHorizontal=0xFFFFFFFF
$wdTextureCross =0xFFFFFFF5
$oDoc.Tables.Item(1).Cell(1,1).Shading.Texture = $wdTextureCross ; Текстура
; Заливка цветом
$oDoc.Tables.Item(1).Cell(1,2).Shading.BackgroundPatternColor=RGBtoBGR('ad31ff') ; Фиолетовый цвет
; Форматирование указанных ячеек
$oDoc.Tables.Item(1).Columns.Item(2).Cells.Item(2).Range.Text='Текст' ; Запись в таблицу
$oDoc.Tables.Item(1).Cell(2,2).Shading.BackgroundPatternColor=RGBtoBGR('ffff31') ; Желтый цвет
$oDoc.Tables.Item(1).Cell(2,2).Range.Font.Name='Times New Roman'
$oDoc.Tables.Item(1).Cell(2,2).Range.Font.Italic=1
$oDoc.Tables.Item(1).Cell(2,2).Range.Font.Size=16
; Форматирование выделенных ячеек
;~ $oDoc.Tables.Item(1).Columns.Item(2).Cells.Item(2).Range.Text='Текст' ; Запись в таблицу
;~ $oDoc.Tables.Item(1).Cell(2,2).Select ; Или так: $oDoc.Tables(1).Rows(2).Cells(2).Select ; Выделить ячейки
;~ $oWord.Selection.Cells.Shading.BackgroundPatternColor=RGBtoBGR('ffff31')
;~ $oWord.Selection.Font.Name='Times New Roman'
;~ $oWord.Selection.Font.Italic=1
;~ $oWord.Selection.Font.Size=16
; ============= Создать Таблицу 2 через AUTOIT
$oRange = _Word_DocRangeSet($oDoc, -2) ; Устанавить курсор в Конец Word файла
$oRange.InsertAfter('Таблица 2') ; Вставить данные
$oRange = _Word_DocRangeSet($oDoc, -2) ; Устанавить курсор в Конец Word файла
Local $aArray[4][6] ; 1 Строка, 6 столбцов
_Word_DocTableWrite($oRange, $aArray, 0) ; Создать таблицу
$oDoc.Tables(2).Style = "Сетка таблицы" ; Нарисовать сетку таблицы
$oTable = $oDoc.Tables(2) ; Ссылка на объект Таблица 2
$oNewRow = $oTable.Rows.Add() ; Добавить строку в Таблицу 2
; Добавить строку и Заполнить Таблицу 2 данными из Массива
$oNewRow=$oDoc.Tables(2).Rows.Add() ; Добавить новую строку
Local $aData[6]=['1','2','3','4','5','6']
For $iCel = 1 To UBound($aData)
$oNewRow.Cells($iCel).Range.Text = $aData[$iCel-1]
Next
; Заполнить Первую строку Таблицы 2
For $iCel = 1 To UBound($aData)
$oTable.Rows.Item(1).Cells($iCel).Range.Text = $aData[$iCel-1]
$oTable.Rows.Item(2).Cells(1).Range.Text = '1'
Next
; Запись в ячейку
$oTable.Columns.Item(3).Cells.Item(3).Range.Text = 'X'
; Функция перевода из RGB в BGR
Func RGBtoBGR($RGBData)
$BGRData=Dec(StringRight($RGBData,2)&StringMid($RGBData,3,2)&StringLeft($RGBData,2))
Return $BGRData
EndFunc