Документация HotXLS

Метод WriteCells

Заполняет диапазон классического листа XLS, вызывая код приложения для каждого значения ячейки

Синтаксис

type
  TXLSCellWriteEvent = procedure(
    Sender: TObject;
    SheetIndex, Row, Col: Integer;
    var Value: Variant;
    var Skip: Boolean;
    var Cancel: Boolean) of object;

function WriteCells(ARange: WideString; Callback: TXLSCellWriteEvent): Integer; overload;
function WriteCells(ARow1, ACol1, ARow2, ACol2: Integer; Callback: TXLSCellWriteEvent): Integer; overload;

Примечания

Строковая перегрузка принимает диапазон в стиле A1, например A1:C100. Числовая перегрузка использует индексы строк и столбцов с отсчётом от 1. Диапазоны нормализуются, если начальная строка или столбец больше конечной строки или столбца
Ячейки запрашиваются в порядке строк. Задайте Value в обратном вызове для записи текущей ячейки. Установите Skip в True, чтобы оставить текущую ячейку без изменений. Установите Cancel в True, чтобы остановить обработку после текущего обратного вызова. Возвращаемое значение — количество записанных ячеек
Данный метод выполняет запись в загруженную модель листа. Это компактный вспомогательный инструмент записи на основе обратных вызовов, а не потоковый режим сохранения файла

Пример

procedure TForm1.WriteCell(Sender: TObject; SheetIndex, Row, Col: Integer;
  var Value: Variant; var Skip: Boolean; var Cancel: Boolean);
begin
  if Col = 3 then
  begin
    Skip := True;
    Exit;
  end;

  Value := Format('R%dC%d', [Row, Col]);
  if Row >= 1000 then
    Cancel := True;
end;

Written := Workbook.Sheets[1].WriteCells('A1:D2000', WriteCell);

См. также