ВУЗ:
Составители:
14
конкретной ячейке, таким образом, можно получить через свойство Cells со-
ответствующего рабочего листа:
Sheet.Cells[1,1].Value := 'Hello, World!';
А можно задать диапазон, размером в одну ячейку , и получить к ней дос-
туп через свойство Range:
Sheet.Range['A1'].Value := 'Hello, World!';
Достоинство второго способа проявляется в случае необходимости выво-
да в Excel больших массивов данных, что является обычной практикой . Уско-
рить такой вывод можно, используя следующий прием . Вместо последователь-
ного вывода данных в каждую ячейку :
for i:=1 to 10 do Sheet.Cells[1,i].Value := 'Hello, World!';
сначала формируется вариантный массив , после чего он выводится в диапазон
ячеек одним обращением к диспинтерфейсу :
Arr := VarArrayCreate([1,10],varVariant);
for i:=1 to 10 do Arr[i] := 'Hello, World!';
Sheet.Range['A1:J1'].Value := Arr;
При необходимости можно выводить за один прием и двумерные табли-
цы , образовывая на клиентской стороне двумерные вариантные массивы .
Оба рассмотренные способа вывода массивов проиллюстрированы в при-
мере реализации отклика на нажатие кнопки запуска генератора отчетов (ос-
тальные действия при разработке клиента полностью повторяют аналогичные
действия, проделанные нами для реализации клиента Word):
procedure TForm1.Button1Click(Sender: TObject);
var Exl,Book,Sheet,Arr: Variant; i,j: Integer;
begin
with Table1 do begin
DatabaseName:='DBDEMOS'; TableName:='country.db'; Open
end;
try // если Excel запущен - подключиться к нему
Exl := GetActiveOleObject('Excel.Application');
except // если нет - запустить
Exl := CreateOleObject('Excel.Application');
end;
Exl.Visible:=True;
Book := Exl.WorkBooks.Add;
Sheet := Book.ActiveSheet;
Sheet.Range['A1'].Value := 'Hello, World!';
Sheet.Range['A2'].Value := ' №';
j:=0;
14 конкретной ячейке, таким образом, можно получить через свойство Cells со- ответствующего рабочего листа: Sheet.Cells[1,1].Value := 'Hello, World!'; А можно задать диапазон, размером в одну ячейку, и получить к ней дос- туп через свойство Range: Sheet.Range['A1'].Value := 'Hello, World!'; Достоинство второго способа проявляется в случае необходимости выво- да в Excel больших массивов данных, что является обычной практикой. Уско- рить такой вывод можно, используя следующий прием. Вместо последователь- ного вывода данных в каждую ячейку: for i:=1 to 10 do Sheet.Cells[1,i].Value := 'Hello, World!'; сначала формируется вариантный массив, после чего он выводится в диапазон ячеек одним обращением к диспинтерфейсу: Arr := VarArrayCreate([1,10],varVariant); for i:=1 to 10 do Arr[i] := 'Hello, World!'; Sheet.Range['A1:J1'].Value := Arr; При необходимости можно выводить за один прием и двумерные табли- цы, образовывая на клиентской стороне двумерные вариантные массивы. Оба рассмотренные способа вывода массивов проиллюстрированы в при- мере реализации отклика на нажатие кнопки запуска генератора отчетов (ос- тальные действия при разработке клиента полностью повторяют аналогичные действия, проделанные нами для реализации клиента Word): procedure TForm1.Button1Click(Sender: TObject); var Exl,Book,Sheet,Arr: Variant; i,j: Integer; begin with Table1 do begin DatabaseName:='DBDEMOS'; TableName:='country.db'; Open end; try // если Excel запущен - подключиться к нему Exl := GetActiveOleObject('Excel.Application'); except // если нет - запустить Exl := CreateOleObject('Excel.Application'); end; Exl.Visible:=True; Book := Exl.WorkBooks.Add; Sheet := Book.ActiveSheet; Sheet.Range['A1'].Value := 'Hello, World!'; Sheet.Range['A2'].Value := ' №'; j:=0;
Страницы
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- …
- следующая ›
- последняя »