Τεκμηρίωση HotXLS

Γενιά δομής φορτωμένου βιβλίου εργασίας

Οι δομικές γενιές επιτρέπουν σε έναν αναγνώστη να διατηρεί οικονομικά στιγμιότυπα και να απορρίπτει τη διάσχιση όταν η τοπολογία του βιβλίου εργασίας από την οποία εξαρτάται έχει αλλάξει

Πηγές γενεών

ΜηχανήΓενιά αποθήκευσης κελιώνΓενιά συλλογής φύλλων εργασίας
Classic XLSTXLSWorksheet.CellStructureGenerationTXLSWorksheets.StructureGeneration
XLSXTXLSXWorksheet.CellStructureGeneration ή TXLSXCells.StructureGenerationTXLSXSheets.StructureGeneration

Κάθε ιδιότητα είναι μια τιμή UInt64 μόνο για ανάγνωση και το ακριβές ποσό κατά το οποίο αλλάζει δεν αποτελεί μέρος της σύμβασης

Λειτουργίες που ακυρώνουν

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

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

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

Λειτουργίες που δεν ακυρώνουν

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

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

Επικύρωση

Καλέστε το XlsValidateStructureGeneration πριν προωθήσετε ή διαβάσετε κατάσταση διάσχισης που δημιουργήθηκε για μια προηγούμενη γενιά

Μια αναντιστοιχία εγείρει EXLSLoadedCellCursorInvalidated, επιτρέποντας στους καλούντες να διακρίνουν τη δομική ακύρωση από σφάλματα δεδομένων ή μορφοποίησης

ExpectedGeneration := Worksheet.CellStructureGeneration;

{ Read or retain traversal state }

XlsValidateStructureGeneration(
  ExpectedGeneration,
  Worksheet.CellStructureGeneration);

Cursor κλασικού βιβλίου εργασίας

Το IXLSWorkbook.CreateLoadedCellCursor δεσμεύει τη συγκεντρωτική γενιά του κλασικού βιβλίου εργασίας και την επικυρώνει πριν από κάθε κλήση MoveNext και Current

Ο cursor διασχίζει απευθείας τους δεσμευμένους κλάδους αραιής αποθήκευσης με σταθερή κατάσταση cursor και επιστρέφει ιδιόκτητες τιμές TXLSLoadedCellSnapshot

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

Cursor βιβλίου εργασίας XLSX

Το TXLSXWorkbook.CreateLoadedCellCursor δεσμεύει μια μίσθωση διάρκειας ζωής του βιβλίου εργασίας και μια συγκεντρωτική γενιά τοπολογίας που μοιράζονται όλα τα καταστήματα κελιών των φύλλων εργασίας και η συλλογή φύλλων εργασίας

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

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

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

Όριο ταυτόχρονης εκτέλεσης

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

Δείτε επίσης