Шаг 61.
Автоматизация Microsoft Word. Создание таблиц и работа с ними. Форматы таблиц

    На этом шаге мы рассмотрим использование форматов таблиц и их отдельных элементов.

    В результате использования метода Add мы создали простую таблицу, основными параметрами которой являются ее местонахождение, а также количество столбцов и строк. Но в документах таблицы могут иметь вид, далеко отличающийся от того, что мы получили. Чтобы изменить вид таблицы, достаточно изменить толщину, стиль и цвет линий, рисунок и цвет заливки ячейки, цвет ячейки, расположить текст определенным образом. Тогда мы можем получить таблицу, удовлетворяющую определенным требованиям отображения содержащейся в ней информации.

    Есть методы, позволяющие настроить индивидуально каждую строку, столбец или ячейку. Их мы рассмотрим позже. В Word есть несколько заданных форматов таблиц, использование которых приведет к определенному виду все ячейки таблицы.

    Формат таблицы задается с помощью метода AutoFormat объекта "таблица". Вот его спецификация в VB:

AutoFormat(Format, ApplyBorders, ApplyShading, ApplyFont, ApplyColor, 
   ApplyHeadingRows, ApplyLastRow, ApplyFirstColumn, ApplyLastColumn, AutoFit)

    Аргументы метода и их назначение перечислены в таблице 1.

Таблица 1. Аргументы метода AutoFormat
Аргумент Тип Назначение
Format Число Формат таблицы
ApplyBorders Логический True - задать границы согласно спецификации формата
ApplyShading Логический True - применить текстуру согласно спецификации формата
ApplyFont Логический True - применить заданный форматом шрифт
ApplyColor Логический True - применить заданный форматом цвет
ApplyHeadingRows Логический True - использовать свойства для верхней строки согласно спецификации формата
ApplyLastRow Логический True - использовать свойства для последней строки согласно спецификации формата
ApplyFirstColumn Логический True - использовать свойства для первого столбца согласно спецификации формата
ApplyLastColumn Логический True - использовать свойства для последнего столбца согласно спецификации формата
AutoFit Логический True - изменять ширину ячейки согласно ширине введенного текста

    Первый аргумент метода Format: Integer определяет формат, который нужно задать таблице. Он может принимать значения от 0 до 39 (в Office 97), соответствующие различным предопределенным форматам таблицы. Остальные аргументы определяют применение или отказ от применения некоторых опций этого метода.

    Используем метод AutoFormat для изменения внешнего вида созданных таблиц. Для этого создадим форму, расположим в ней элементы управления и следующий программный текст, который добавим в процедуру отклика на выбор в списке компонента ListBox1 и в процедуру отклика на нажатие кнопки TButton.

  .    .    .   .
  table: Variant;
  .    .    .   .
procedure TForm1.ListBox1Click(Sender: TObject);
//Запомнить параметры выбранной таблицы
begin
  table:=W.ActiveDocument.Tables.Item(ListBox1.ItemIndex+1);
  NumRows.Text:=IntToStr(table.Rows.Count);
  NumColumns.Text:=IntToStr(table.Columns.Count);
end;

procedure TForm1.Button6Click(Sender: TObject);
//Применить выбранный формат
begin
  table.AutoFormat(Format:=StrToInt(format.Text),
           ApplyBorders:=ApplyBorders.Checked,
           ApplyShading:=ApplyShading.Checked,
           ApplyFont:=ApplyFont.Checked,
           ApplyColor:=ApplyColor.Checked,
           ApplyHeadingRows:=ApplyHeadingRows.Checked,
           ApplyLastRow:=ApplyLastRow.Checked,
           ApplyFirstColumn:=ApplyFirstColumn.Checked,
           ApplyLastColumn:=ApplyLastColumn.Checked,
           AutoFit:=AutoFit.Checked);
end;
Текст этого приложения можно взять здесь (8,1 Кб).

    Результат работы приложения изображен на рисунке 1:


Рис.1. Результат работы приложения

    Первая процедура выбирает таблицу, используя индекс компонента ListBox1, и записывает в переменную table: Variant ссылку на эту таблицу. Вторая процедура работает с table как с объектом "таблица", изменяя ее формат согласно состоянию элементов управления (рисунок 1). Заполним элементы формы, значения которых используем в качестве аргументов метода AutoFormat, и выполним этот метод, предварительно выбрав одну из таблиц документа. В итоге получим результат, показанный на рисунке 1. Выбранный в данном примере формат соответствует значению аргумента Format=wdTableFormatColumns4 (wdTableFormatColumns4=13).

    На следующем шаге мы рассмотрим изменение положения таблицы и ее строк.




Предыдущий шаг Содержание Следующий шаг