HotXLS-dokumentaatio

CreateLoadedCellCursor metodi

Luo pull-kursorin ladatun XLSX-työkirjan tallennettujen solujen yli, ja sen valinnaisella parametrilla voidaan ottaa mukaan itsenäisesti tyylitetyt tyhjät solut

Syntaksi

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

Läpikäynnin järjestys ja kustannus

Kursori käy laskentataulukot läpi kokoelman järjestyksessä ja sen jälkeen solut nousevan rivin ja sarakkeen mukaan

SheetIndex, Row ja Col ovat yhdestä alkavia julkisia koordinaatteja

Materialisoidut laskentataulukot luetaan suoraan niiden varatuista 256 rivin harvoista lohkoista rakentamatta lajiteltua soluluetteloa

Pakatut laskentataulukot luetaan suoraan pakatun tallennuksen iteraattorin kautta ja pysyvät pakattuina läpikäynnin jälkeen

Kursorin tila on vakio työkirjan koon suhteen, eikä se varaa taulukoita XLSX:n rivi- tai sarakerajojen kokoisina

Parametriton ylikuormitus ohittaa vain tyylitetyt tyhjät solut, tallennetut Empty-paikkamerkit ja tallennetut Null-paikkamerkit

Anna True, jotta mukaan otetaan itsenäisesti tyylitetyt tyhjät koordinaatit materialisoidusta tai pakatusta tallennuksesta materialisoimatta pakattuja soluja

Tyylittömät Empty- ja Null-paikkamerkit pysyvät poissuljettuina kummassakin tilassa

Tilannekuvan kentät

KenttäMerkitys
SheetIndex / SheetNameOmistavan laskentataulukon identiteetti tallennushetkellä
Row / ColYhdestä alkavat solukoordinaatit
StyleIndexMaterialisoidusta tai pakatusta tallennuksesta tallennettu XLSX-solumuotoiluindeksi
KindxlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula, xlckError tai xlckBlank
ValueNykyiselle solulle tallennettu omistettu Variant-arvo
FormulaKaavateksti kaavasoluille, muuten tyhjä merkkijono

TXLSLoadedCellSnapshot -rakenteen merkkijonot ja Variant-arvot ovat omistettuja arvoja, eivätkä ne paljasta sisäisiä solu- tai pakatun tallennuksen osoittimia

XLSX-kaavasoluille Value on tällä hetkellä tallennettu välimuistissa oleva arvo, eikä läpikäynti laske kaavaa uudelleen

Kun xlckBlank, Value on Unassigned, Formula on tyhjä ja StyleIndex yksilöi tallennetun solun muotoilun

Tila, mitätöinti ja elinkaari

State on xlccBeforeFirst, kunnes ensimmäinen onnistunut MoveNext on tehty, xlccActive niin kauan kuin Current on käytettävissä ja xlccEof läpikäynnin valmistuttua

Current -arvon lukeminen ennen ensimmäistä solua tai EOF:n jälkeen nostaa EXLSLoadedCellCursorState -poikkeuksen

Tallennettujen solujen luominen tai poistaminen, pakatun tallennuksen materialisointi, nimenomaiset indeksien uudelleenrakentamiset tai laskentataulukoiden lisääminen, poistaminen, siirtäminen tai tyhjentäminen mitätöi kursorin

Seuraava MoveNext - tai Current -kutsu nostaa sen jälkeen EXLSLoadedCellCursorInvalidated -poikkeuksen

Olemassa olevan solun arvon, kaavan tai muotoilun muuttaminen ei mitätöi kursoria, eikä jo tallennettu tilannekuva muutu

Työkirjan vapauttaminen ennen kursoria nostaa myös EXLSLoadedCellCursorInvalidated -poikkeuksen sen sijaan, että kursori jäisi pitämään kiinni vanhentuneesta työkirjaosoittimesta

Generointivalidointi on nopeasti epäonnistuvaa havaitsemista, eikä se tee rinnakkaisesta muokkaamisesta ja läpikäynnistä säikeistysturvallista

Esimerkki

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;

Katso myös