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 / SheetName | Omistavan laskentataulukon identiteetti tallennushetkellä |
Row / Col | Yhdestä alkavat solukoordinaatit |
StyleIndex | Materialisoidusta tai pakatusta tallennuksesta tallennettu XLSX-solumuotoiluindeksi |
Kind | xlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula, xlckError tai xlckBlank |
Value | Nykyiselle solulle tallennettu omistettu Variant-arvo |
Formula | Kaavateksti 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;