Γενιά δομής φορτωμένου βιβλίου εργασίας
Οι δομικές γενιές επιτρέπουν σε έναν αναγνώστη να διατηρεί οικονομικά στιγμιότυπα και να απορρίπτει τη διάσχιση όταν η τοπολογία του βιβλίου εργασίας από την οποία εξαρτάται έχει αλλάξει
Πηγές γενεών
| Μηχανή | Γενιά αποθήκευσης κελιών | Γενιά συλλογής φύλλων εργασίας |
|---|---|---|
| Classic XLS | TXLSWorksheet.CellStructureGeneration | TXLSWorksheets.StructureGeneration |
| XLSX | TXLSXWorksheet.CellStructureGeneration ή TXLSXCells.StructureGeneration | TXLSXSheets.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 και δεν καθιστούν την ταυτόχρονη μεταβολή και διάσχιση του βιβλίου εργασίας ασφαλείς για νήματα