Τεκμηρίωση HotXLS

Μέθοδος CreateLoadedCellCursor

Δημιουργεί έναν cursor έλξης πάνω από τα αποθηκευμένα κελιά ενός φορτωμένου βιβλίου εργασίας XLSX, με επιλογή συμπερίληψης κενών με ανεξάρτητη μορφοποίηση

Σύνταξη

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

Σειρά διάσχισης και κόστος

Ο cursor επισκέπτεται τα φύλλα εργασίας με τη σειρά της συλλογής και στη συνέχεια τα κελιά με αύξουσα σειρά και στήλης

Τα SheetIndex, Row και Col είναι δημόσιες συντεταγμένες με αρίθμηση από τη μονάδα

Τα υλοποιημένα φύλλα εργασίας διαβάζονται απευθείας από τα δεσμευμένα αραιά μπλοκ των 256 σειρών τους χωρίς να χτίζεται ταξινομημένη λίστα κελιών

Τα συσκευασμένα φύλλα εργασίας διαβάζονται απευθείας μέσω του iterator της συσκευασμένης αποθήκευσης και παραμένουν συσκευασμένα μετά τη διάσχιση

Η κατάσταση του cursor είναι σταθερή ως προς το μέγεθος του βιβλίου εργασίας και δεν δεσμεύει πίνακες διαστάσεων σύμφωνα με τα όρια σειρών ή στηλών XLSX

Η υπερφόρτωση χωρίς παραμέτρους παραλείπει τα κενά μόνο με στυλ, τα αποθηκευμένα placeholders Empty και τα αποθηκευμένα placeholders Null

Περάστε True για να συμπεριλάβετε κενές συντεταγμένες με ανεξάρτητη μορφοποίηση από υλοποιημένη ή συσκευασμένη αποθήκευση, χωρίς υλοποίηση συσκευασμένων κελιών

Τα χωρίς στυλ placeholders Empty και Null παραμένουν εξαιρεμένα και στις δύο λειτουργίες

Πεδία στιγμιότυπου

ΠεδίοΣημασία
SheetIndex / SheetNameΗ ταυτότητα του φύλλου εργασίας κατόχου τη στιγμή της λήψης
Row / ColΣυντεταγμένες κελιού με αρίθμηση από τη μονάδα
StyleIndexΕυρετήριο μορφής κελιού XLSX που λήφθηκε από υλοποιημένη ή συσκευασμένη αποθήκευση
KindxlckText, xlckNumber, xlckDateTime, xlckBoolean, xlckFormula, xlckError ή xlckBlank
ValueΙδιόκτητη τιμή Variant που λήφθηκε για το τρέχον κελί
FormulaΚείμενο τύπου για κελιά τύπων, διαφορετικά κενή συμβολοσειρά

Οι συμβολοσειρές και τα Variant στο TXLSLoadedCellSnapshot είναι ιδιόκτητες τιμές και δεν εκθέτουν εσωτερικούς δείκτες κελιών ή συσκευασμένης αποθήκευσης

Για κελιά τύπων XLSX, η Value είναι η τρέχουσα αποθηκευμένη cached τιμή και η διάσχιση δεν επανυπολογίζει τον τύπο

Για το xlckBlank, η Value είναι Unassigned, το Formula είναι κενό και το StyleIndex ταυτοποιεί την αποθηκευμένη μορφή κελιού

Κατάσταση, ακύρωση και διάρκεια ζωής

Η State είναι xlccBeforeFirst μέχρι την πρώτη επιτυχημένη MoveNext, xlccActive όσο το Current είναι διαθέσιμο και xlccEof μετά την ολοκλήρωση της διάσχισης

Η ανάγνωση του Current πριν από το πρώτο κελί ή μετά το EOF εγείρει EXLSLoadedCellCursorState

Η δημιουργία ή διαγραφή αποθηκευμένων κελιών, η υλοποίηση της συσκευασμένης αποθήκευσης, οι ρητές ανακατασκευές ευρετηρίου ή η προσθήκη, διαγραφή, μετακίνηση και εκκαθάριση φύλλων εργασίας ακυρώνουν τον cursor

Η επόμενη κλήση MoveNext ή Current εγείρει τότε EXLSLoadedCellCursorInvalidated

Η αλλαγή της τιμής, του τύπου ή της μορφής ενός υπάρχοντος κελιού δεν ακυρώνει τον cursor, και ένα ήδη ληφμένο στιγμιότυπο παραμένει αμετάβλητο

Η απελευθέρωση του βιβλίου εργασίας πριν από τον cursor εγείρει επίσης EXLSLoadedCellCursorInvalidated αντί να αφήσει τον cursor με εκκρεμή δείκτη βιβλίου εργασίας

Η επικύρωση γενιάς είναι ανίχνευση fail-fast και δεν καθιστά την ταυτόχρονη μεταβολή και διάσχιση ασφαλείς για νήματα

Παράδειγμα

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;

Δείτε επίσης