Для доступа к ячейкам можно использовать два разных объекта — объект
типа Range, который ассоциируется с областью ячеек, или непосредственно
объект Cell (ячейка листа рабочей книги). Если первый объект удобен для
работы с целыми областями ячеек, то второй больше подходит для работы
с отдельно взятой ячейкой. Эти объекты принадлежат объекту "лист" и
требуют задания координат ячейки или области ячеек при обращении к
ним. Например, для задания объекта, ассоциированного с областью ячеек
A1:D5, используем следующий оператор:
MyRange:=Sheet.Range[Al:D5];
где Sheet — ссылка на лист рабочей книги. После удачного выполнения
данного оператора переменная MyRange:variant содержит ссылку на объект,
ассоциированный с выбранной областью ячеек. Другой вариант данного
оператора:
MyRange:= Е.Sheets.Item(1).Range('Al:D5');
Здесь мы получаем ссылку на область ячеек первого листа рабочей книги.
Обеспечить доступ к отдельной ячейке можно с помощью как объекта
Range, так и объекта Cell. Использование последнего в операторе получения
доступа к ячейке может выглядеть так:
MyCell:=Sheet.Cells[1,1] ;
При выполнении данного оператора переменная MyCell будет хранить
ссылку на ячейку А1.
Итак, мы получили доступ к ячейкам. Попробуем записать в них информа-
цию из приложения на Delphi.
Запись информации в ячейки листа рабочей книги
procedure ToKBottomDlg4.ButtonlClick(Sender: TObject);
var a_:integer;
begin
randomize;
for a_:=l to 100 do Sheet.Cells(a_,1):=random(10000);
end;
В данном примере переменная Sheet содержит ссылку на лист рабочей кни-
ги (эта переменная была инициализирована ранее). Полный исходный текст
приложения находится на сопроводительном диске книги. Результат выпол-
нения процедуры представлен на рис. 11.12.
Рис. 11.12. Запись случайных чисел в ячейки листа рабочей книги Excel
Если для записи в ячейки мы присваивали объекту Cells(row, column) зна-
чение, то для чтения данных используем оператор, в котором строковой
переменной присваивается значение объекта Cells(row, column). В качестве
примера импортируем значения ячеек рабочей книги, запишем их значения
в объект ListBoxl и отобразим в форме.
Чтение информации листа рабочей книги Excel
procedure ToKBottomDlg4.Button2Click(Sender: TObject)
var eee_:string;
a_:integer;
begin
ListBoxl.Items.Clear;
for a_:=l to 100 do begin
eee_:=Sheet.Cells[a_,l];
ListBoxl.Items.Add(eee_);
end;
end;
Результат чтения данных представлен на рис. 11.13.
Рис. 11.13. Чтение информации листа рабочей книги Excel
В приведенных примерах для записи данных в ячейку мы присваивали зна-
чения непосредственно объекту Cells() или Range(). Эти данные распознава-
лись как значения ячеек и отображались на листе. Но ячейки могут иметь
разные типы. Например, они могут содержать как целые значения, так и
формулы. Для чтения или записи значений используются, например, свой-
ства Value и Text ячейки, для записи формулы — свойство Formula.
Изменим наши процедуры записи и чтения значений ячеек.
Использование свойств Value и Text ячейки для записи и чтения ее значения
procedure TOKBottomDlg4.ButtonlClick(Sender: TObject);
var a_:integer;
begin
randomize;
for a_:=l to 100 do Sheet.Cells(a_,1).Value:=random(10000);
end;
procedure TOKBottomDlg4.Button2Click(Sender: TObject);
var eee :string;
a_:integer;
begin
ListBoxl.Items.Clear;
for a_:=l to 100 do begin
eee_:=Sheet.Cells[a_,1].Text;
ListBoxl.Items.Add(eee_);
end;
end;
Ячейка или область представляет собой объект. Этот объект описывает не
только значение, хранящееся и отображаемое в ячейке, но и другие ее па-
раметры. Остальные свойства ячейки, которые будут рассмотрены в сле-
дующей главе, определяют способ отображения информации. |