Dokumentacja HotXLS

Metoda CreateLoadedCellCursor

Tworzy kursor sekwencyjnego wyliczania zapisanych komórek w załadowanym skoroszycie klasycznego XLS, z opcją uwzględnienia pustych komórek o własnym formatowaniu

Składnia

function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload;
function CreateLoadedCellCursor(
  AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;

Kolejność i koszt przechodzenia

Kursor odwiedza arkusze w kolejności kolekcji, następnie komórki według rosnącego wiersza i kolumny

SheetIndex, Rowi Col to publiczne współrzędne numerowane od jedynki

Przechodzenie podąża bezpośrednio za przydzielonymi gałęziami klasycznego rozrzedzonego magazynu, dzięki czemu stan kursora pozostaje stały i nie przydziela tablic o rozmiarze odpowiadającym limitom wierszy czy kolumn arkusza

Przeciążenie bez parametrów pomija puste komórki i zachowuje istniejący kontrakt przechodzenia wartości i formuł

Przekaż True , aby uwzględnić zapisane puste komórki, których XF komórki różni się od odziedziczonego formatu wiersza, kolumny lub arkusza

Samo odziedziczone formatowanie nie materializuje ani nie emituje współrzędnej pustej komórki

Pola migawki

PoleZnaczenie
SheetIndex / SheetNameTożsamość arkusza będącego właścicielem w chwili przechwycenia
Row / ColWspółrzędne komórki numerowane od jedynki
StyleIndexIndeks stylu klasycznego XF
Kind (TXLSLoadedCellKind)xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormulalub xlckBlank
ValueWartość Variant będąca własnością migawki, przechwycona dla bieżącej komórki
FormulaTekst formuły dla komórek z formułami, w przeciwnym razie pusty ciąg

Ciągi i wartości Variant w TXLSLoadedCellSnapshot należą do samej migawki i nie ujawniają wewnętrznych obiektów komórek

Dla komórek z formułami Value podlega normalnej semantyce dostępu do wartości skoroszytu klasycznego, włącznie z obliczaniem, gdy jest wymagane

Dla xlckBlank, Value wynosi Unassigned, Formula jest pusty, a StyleIndex identyfikuje zapisany XF komórki

Stan i unieważnianie

State (type TXLSLoadedCellCursorStateprzyjmuje xlccBeforeFirst do pierwszego udanego MoveNext, xlccActive , gdy Current jest dostępne, i xlccEof po zakończeniu przechodzenia

Odczyt Current przed pierwszą komórką lub po EOF zgłasza EXLSLoadedCellCursorState

Tworzenie lub usuwanie zapisanych komórek, dodawanie, usuwanie lub przenoszenie arkuszy albo zastąpienie modelu skoroszytu unieważnia kursor

Następne wywołanie MoveNext lub Current zgłasza EXLSLoadedCellCursorInvalidated

Zmiana wartości, formuły lub formatu istniejącej komórki nie unieważnia kursora, a już przechwycona migawka pozostaje bez zmian

Przykład

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;

Zobacz także