Основой любой таблицы служит ячейка (объект ICell), которая хранится в коллекции ячеек (ICells) и идентифицируется двумя значениями: номерами ряда и колонки.
property Cell(aRow, aCol : Integer) : ICell;
Будьте внимательны! Программисты Borland привыкли, что в компонентах-сетках библиотеки VCL при выборе ячейки первым параметром идет колонка, а вторым -ряд. Например, как в свойстве сетки строк TStringGrid:
property Cells[ACol, ARow: Integer]: string;
Ячейки в приложениях Microsoft® идентифицируются с точностью до наоборот -сначала ряд, а затем колонка.
Для того чтобы внести в ячейку текстовые данные, необходимо вспомнить изученный ранее объект «Область», описываемый интерфейсом IRange. В приведенном ниже примере для заполнения таблицы данными вызывается метод InsertAfter().
var Doc, Table : OLEVariant; aRow : Integer;
Table:=Doc.Tables.Add(Doc.Range(0,0),9,2); for aRow:=Table.Rows.Count downto 1 do
Table.Cell(aRow,1).Range.InsertAfter(aRow); Table.Columns.Item(1).Sort;
В примере создается таблица, первая колонка которой заполняется цифрами в обратном порядке (от 9 до 1), а затем вызывается метод сортировки, упорядочивающий цифры по возрастанию.
Для удаления ячейки следует обратиться к процедуре:
procedure Delete(ShiftCells : Integer); Параметр ShiftCells определяет порядок удаления ячейки.
Table.Cell(4,1).Delete(3); //удаляем первую колонку таблицы
Ячейка таблицы Microsoft Word обладает способностью делиться на части или наоборот объединяться со своими соседками. Для того чтобы разделить ячейку, вызовите процедуру:
procedure Split(NumRows, NumColumns : Integer);
Параметры NumRows и NumColumns определяют, на сколько рядов и колонок мы планируем разбить несчастную ячейку.
Table.Cell(1,1).Split(2,2);