На этом шаге мы рассмотрим простейшие операции с таблицами.
Документ Word может содержать таблицы, которые как объекты объединены в коллекцию Tables. Как вытекает из вышесказанного, обычно эта коллекция принадлежит объекту "документ". Рассмотрим ее основные свойства и методы.
Свойство Count: integer содержит информацию о количестве таблиц в коллекции. Если в документе нет ни одной таблицы, то Count содержит ноль.
Метод Add добавляет новую таблицу в коллекцию. При создании таблицы определяются область, где будет создана таблица, и ее основные параметры - количество столбцов и строк. Хотя коллекция таблиц и принадлежит документу, тем не менее сама таблица может быть создана на любом объекте или месте документа, на котором это возможно. Объект Item(tab) - элемент коллекции и представляет собой таблицу с порядковым номером tab данной коллекции.
Для демонстрации свойств и методов коллекции Tables создадим новый документ и в нем создадим таблицу. Используем метод Add. Его спецификация в VB имеет следующий вид:
expression.Add(Range, NumRows, NumColumns),
где Range - область, на которой создается таблица, NumRows и NumColumns - количество строк и столбцов создаваемой таблицы.
Рассмотрим использование метода Add в среде Delphi на примере приведенного ниже фрагмента программного текста.
procedure TForm1.Button1Click(Sender: TObject); //Создание таблицы begin W.ActiveDocument.Tables.Add(Range:=W.ActiveDocument.Range, NumRows:=2, NumColumns:=3); end;
Данная процедура создаст таблицу непосредственно в документе. Первый аргумент метода определяет область, где будет создана таблица, - весь документ. Следующие аргументы определяют количество строк и столбцов. Если попробовать вторично выполнить эту процедуру, то будет сгенерирована ошибка.
Для корректного создания следующей таблицы необходимо в качестве первого аргумента метода Add указать область, которая свободна и не содержит таблицу. Для задания этой области можно использовать метод Range, который рассматривался ранее, или, например, свойство End объекта Range.
Рассмотрим следующую процедуру, которая создает новую таблицу в докменте. В отличие от предыдущей, для создания новой таблицы она использует область в конце документа.
procedure TForm1.Button3Click(Sender: TObject); //Таблица в конце документа var MyRange:Variant; begin W.ActiveDocument.Range.InsertAfter(' '); MyRange:=W.ActiveDocument.Range(W.ActiveDocument.Range.End-1, W.ActiveDocument.Range.End-1); W.ActiveDocument.Tables.Add(Range:=MyRange, NumRows:=2, NumColumns:=3); end;
Результат работы приложения изображен на рисунке 1:
Рис.1. Результат работы приложения
Данная процедура использует область в конце документа, в которой и создается новая таблица. За вновь созданной таблицей вставляется пробел, который разделяет таблицы между собой. Если разделения нет, то вновь создаваемые таблицы будут добавляться как строки к существующим таблицам.
Когда создано несколько таблиц, мы можем определить их количество. Это значение содержится в свойстве Count коллекции Tables. Приведенная ниже процедура выводит список таблиц в компонент ListBox.
procedure TForm1.Button4Click(Sender: TObject); //Количество таблиц var a: integer; begin ListBox1.Items.Clear; for a:=1 to W.ActiveDocument.Tables.Count do begin ListBox1.Items.Add('Таблица - '+IntToStr(a)); end; end;
В результате выполнения этой процедуры компонент ListBox1 будет содержать список таблиц (рисунок 2).
Рис.2. Результат работы приложения
Используя объект Item коллекции Tables и порядковый номер таблицы, можно выделить любую таблицу из всего списка таблиц документа для дальнейших манипуляций. Для выделения таблицы, которая содержится в коллекции, используется метод Select объекта Item. Этот объект содержит все методы, коллекции и объекты, присущие таблице как объекту.
Следующий фрагмент программы демонстрирует использование метода Select и метода Delete, удаляющего выбранную таблицу.
procedure TForm1.Button5Click(Sender: TObject); //Удаление выбранной таблицы begin W.ActiveDocument.Tables.Item(ListBox1.ItemIndex+1).Select; W.ActiveDocument.Tables.Item(ListBox1.ItemIndex+1).Delete; end;
Результат работы приложения изображен на рисунке 3:
Рис.3. Результат работы приложения
На следующем шаге мы рассмотрим форматы таблиц.