TExcelFile.LoopOverUsedRange Method
This method loops over a range of cells, and calls an action for every cell that has data.
Syntax
Unit: FlexCel.Core
procedure TExcelFile.LoopOverUsedRange(const aRange: TXlsCellRange; const reader: TProc<TLoopOverUsedRangeParameters>);
Parameters
<-> | Parameter | Type | Description |
---|---|---|---|
const | aRange | TXlsCellRange | Range where we want to extract the cell values. |
const | reader | TProc<TLoopOverUsedRangeParameters> | Anonymous method that will be called once for each cell with a value inside the range. |
Examples
To fill an array with all the cells in a range, you could use:
function GetRangeAsArray(const xls: TExcelFile; const range: TXlsCellRange): TCellValueArray2;
var
//We can't capture Result in an anonymous method.
//So we will use a temporary ResultArray variable.
ResultArray: TCellValueArray2;
begin
ResultArray := nil;
SetLength(ResultArray, range.RowCount, range.ColCount);
xls.LoopOverUsedRange(range,
procedure (x: TLoopOverUsedRangeParameters)
begin
ResultArray[x.Row - range.Top, x.Col - range.Left] := x.Value;
end);
exit (ResultArray);
end;