Documentação do HotXLS

Método WriteCells

Preenche um intervalo de planilha XLS clássica chamando código de aplicação para cada valor de célula

Sintaxe

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;

Observações

A sobrecarga de string aceita um intervalo no estilo A1 como A1:C100. A sobrecarga numérica usa índices de linha e coluna baseados em 1. Os intervalos são normalizados quando a linha ou coluna inicial é maior que a linha ou coluna final
As células são solicitadas em ordem de linha principal. Defina Value no callback para gravar a célula atual. Defina Skip como True para deixar a célula atual inalterada. Defina Cancel como True para parar após o callback atual. O valor de retorno é o número de células gravadas
Este método grava no modelo de planilha carregado. É um auxiliar de gravação compacto baseado em callback, não um modo de salvamento de streaming de arquivo

Exemplo

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);

Veja também