Метод CreateLoadedCellCursor
Създава изтеглящ курсор върху съхранените клетки в заредена класическа XLS работна книга, с опция за включване на независимо стилизирани празни клетки
Синтаксис
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload; function CreateLoadedCellCursor( AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
Ред и разход на обхождането
Курсорът обхожда листовете в реда на колекцията, а след това клетките по възходящ ред и колона
SheetIndex, Row и Col са публични координати, започващи от единица
Обхождането следва директно разпределените клонове на класическото разредено съхранение, поради което състоянието на курсора остава постоянно и не заделя масиви с размерност по границите за редове или колони на листа
Претоварването без параметри пропуска празните клетки и запазва съществуващия договор за обхождане на стойности и формули
Подайте True, за да включите съхранените празни клетки, чийто клетъчен XF се различава от наследения формат на реда, колоната или листа
Само наследеното форматиране не материализира и не издава празна координата
Полета на моментната снимка
| Поле | Значение |
|---|---|
SheetIndex / SheetName | Идентичност на притежаващия лист в момента на улавяне |
Row / Col | Координати на клетката, започващи от единица |
StyleIndex | Класически индекс на стил XF |
Kind | xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula или xlckBlank |
Value | Притежавана Variant стойност, уловена за текущата клетка |
Formula | Текст на формулата за клетките с формули, в противен случай празен низ |
Низовете и Variant стойностите в TXLSLoadedCellSnapshot са притежавани стойности и не разкриват вътрешни клетъчни обекти
За клетки с формули Value следва нормалната семантика за достъп до стойности на класическата работна книга, включително изчисляване, когато е необходимо
За xlckBlank стойността Value е Unassigned, Formula е празна, а StyleIndex идентифицира съхранения клетъчен XF
Състояние и инвалидация
State е xlccBeforeFirst до първия успешен MoveNext, xlccActive, докато Current е налично, и xlccEof след завършване на обхождането
Четенето на Current преди първата клетка или след EOF повдига EXLSLoadedCellCursorState
Създаването или изтриването на съхранени клетки, добавянето, изтриването или местенето на листове, както и заменянето на модела на работната книга инвалидат курсора
Следващото извикване на MoveNext или Current тогава повдига EXLSLoadedCellCursorInvalidated
Промяната на стойност, формула или формат на съществуваща клетка не инвалидира курсора, а вече уловена моментна снимка остава непроменена
Пример
Cursor := Workbook.CreateLoadedCellCursor;
while Cursor.MoveNext do
begin
Cell := Cursor.Current;
Memo1.Lines.Add(Format('%s!R%dC%d = %s',
[Cell.SheetName, Cell.Row, Cell.Col, VarToStr(Cell.Value)]));
end;