Πρόσθετα μέλη API της βιβλιοθήκης
Αυτή η σελίδα συμπληρώνει την αναφορά για τους δημόσιους τύπους που υποστηρίζουν τα κύρια API βιβλίου εργασίας, φύλλου εργασίας, απόδοσης, εισαγωγής, διαγνωστικών και προβολέα, αλλά δεν απαιτούν ξεχωριστό οδηγό ανά εργασία
Φιλτράρισμα και μορφοποίηση υπό όρους
TXLSAutofilter | Τα Add, AddAutofilterData, AssignFrom, Clear και ParseAutofilterData επεξεργάζονται ή εισάγουν τον ορισμό του φίλτρου· τα Defined, FirstRow, FirstCol, LastCol, LastRow και FieldCount εκθέτουν τα ενεργά όρια και τον αριθμό των φιλτραρισμένων στηλών |
TXLSAutofilterItem | Το Shape εκθέτει το σχέδιο του κουμπιού φίλτρου που σχετίζεται με το στοιχείο, και το φορτωμένο κριτήριο φίλτρου είναι διαθέσιμο ως εγγραφή τελεστέου TXLSAutofilterDOPER — το DataType επιλέγει τη μορφή του τελεστέου και το grbitSgn μεταφέρει το πρόσημο και τα bit σημαιών — για επιθεώρηση ή επεξεργασία με round trip |
TXLSDataBarSpec | Τα AxisColor, AxisIsThemeColor, AxisThemeColorId, AxisThemeColorTint και ClearAxisThemeColor ελέγχουν τον άξονα· τα Direction, GradientFill, NegativeBarBorderColorSameAsPositive, NegativeBarColor, NegativeBarColorSameAsPositive και NegativeBorderColor ελέγχουν την εμφάνιση της μπάρας· τα IsIndexedColor, IndexedColorIndex και ClearIndexedColor διαχειρίζονται το χρώμα μπάρας με ευρετήριο παλέτας |
TXLSIconSetSpec | Το ThresholdEqualsInclude επιλέγει περιεκτική ή αυστηρή σύγκριση για κάθε όριο εικονιδίου |
TXLSCfValue | Τα IsIndexedColor και IndexedColorIndex αναφέρουν ένα χρώμα ορίου αποθηκευμένο ως ευρετήριο παλαιού τύπου παλέτας, το ClearIndexedColor αφαιρεί ξανά αυτή τη μορφή και τα χρώματα θέματος ή κυριολεκτικά χρώματα παραμένουν διαθέσιμα μέσω των υφιστάμενων accessors |
Τα TXLSCfValue, TXLSDataBarSpec, TXLSColorScaleSpec, TXLSIconSetSpec και TXLSDxfStyle δέχονται το AttachWriteGuardOwner, συνδέοντας το αντικείμενο του κανόνα με το βιβλίο εργασίας που το κατέχει ώστε οι επεξεργασίες να αποκτούν αυτόματα έναν φρουρό εγγραφής· ο ιδιοκτήτης υλοποιεί το TXLSCondFormatWriteGuardOwner, της οποίας η μοναδική μέθοδος AcquireWriteGuard παραδίδει στον κανόνα τον φρουρό εγγραφής του βιβλίου εργασίας. Το TXLSDxfStyle προσθέτει τα FontColorIndex με FontColorIsIndexed μαζί με τα ζεύγη FillFgColorIndex / FillFgColorIsIndexed και FillBgColorIndex / FillBgColorIsIndexed για χρώματα κανόνων με ευρετήριο παλέτας, καθώς και τις παρακάμψεις differential-font FontName, FontSize και FontScheme (κενή συμβολοσειρά, μέγεθος σε point ή θέση γραμματοσειράς θέματος όπως major / minor) δίπλα στα υπάρχοντα μέλη bold, italic, underline και χρώματος· κάθε ανάθεση αποκτά τον φρουρό εγγραφής και επισημαίνει τον κανόνα ως dirty για επανέκδοση
Τα TXLSConnections, TXLSDataTables και TXLSQueryTables εκθέτουν το OnAcquireWriteGuard (τύποι TXLSConnectionAcquireWriteGuard, TXLSDataTableAcquireWriteGuard και TXLSQueryTableAcquireWriteGuard), τον hook που χρησιμοποιούν οι διαδρομές επεξεργασίας τους για να αποκτήσουν το IXLSWorkbookWriteGuard του βιβλίου εργασίας που τα κατέχει πριν από την τροποποίηση και να προωθήσουν στη συνέχεια τη γενιά του βιβλίου εργασίας· ο φρουρός καταγράφει το StartGeneration και το Complete σηματοδοτεί την ολοκλήρωση της εγγραφής ώστε οι εξαρτώμενες cache να μπορούν να ξαναχτιστούν
Οι διατηρημένες συνδέσεις δεδομένων συνοδεύονται από τυποποιημένη περιγραφή: το TXLSConnectionKind (xlckUnknown, xlckOdbc, xlckDao, xlckFile, xlckWeb, xlckOleDb, xlckText, xlckAdo) ταξινομεί τη σύνδεση, το TXLSConnectionCredentials (xlccIntegrated, xlccNone, xlccStored, xlccPrompt) καταγράφει τη λειτουργία πιστοποίησής της και κάθε τιμή παραμέτρου σύνδεσης επισημαίνεται με TXLSConnectionParameterValueKind (xlcpvNone, xlcpvBoolean, xlcpvDouble, xlcpvInteger, xlcpvString, xlcpvCell). Οι πίνακες δεδομένων what-if αναφέρουν το είδος του αποθηκευμένου ορισμού τους μέσω του TXLSDataTableKind
Πίνακες δεδομένων what-if και ομαδοποίηση pivot
TXLSDataTable | Τα Assign, ContainsCell και IsRoot αντιγράφουν και εξετάζουν έναν πίνακα· τα Kind, FirstRow, FirstCol, LastCol, LastRow, AlwaysCalculate, ColumnInputCol, ColumnInputRow, ColumnInputDeleted, RowInputCol, RowInputRow και RowInputDeleted εκθέτουν τον αποθηκευμένο ορισμό υπολογισμού |
TXLSDataTables | Τα Add, AddExisting, Delete, Clear, Assign, AdjustForShift και Offset συντηρούν τη συλλογή· τα FindByCell και FindRoot εντοπίζουν τον πίνακα που περιέχει ή στη ρίζα του βρίσκεται ένα δεδομένο κελί· τα Count, Items και OnChange εκθέτουν την κατάσταση της συλλογής |
TXLSPivotCacheField | Τα GroupBaseField και GroupParentField εκθέτουν τις σχέσεις μεταξύ ενός ομαδοποιημένου πεδίου και του πεδίου προέλευσης ή γονέα του |
Τα όρια των σετ εικονιδίων μπορούν να αποδοθούν ή να επικυρωθούν προγραμματιστικά: το XLSCfIconSetCount αναφέρει πόσα εικονίδια ορίζει ένας TXLSIconSetType και το XLSBuildCfIconGeometry γεμίζει ένα TXLSCfIconGeometry με τα primitive (TXLSCfIconPrimitive, είδος TXLSCfIconPrimitiveKind: cfipPolygon, cfipEllipse, cfipRect, cfipLine) και τα σημεία (TXLSCfIconPoint) που σχεδιάζουν ένα εικονίδιο, ώστε οι προσαρμοσμένοι renderers να ταιριάζουν με τα ενσωματωμένα σχήματα εικονιδίων του Excel
Διαγνωστικά, ιχνηλάτηση τύπων και επικύρωση
TXLSDiagnostic | Τα Code, NativeCode, Message, Severity, ExceptionClass, PartName, RecordId, SheetIndex, SheetName και StreamOffset ταυτοποιούν ένα διαγνωστικό parser, writer ή πακέτου |
TXLSDiagnostics | Το Add προσαρτά ένα διαγνωστικό, το Clear επαναφέρει τη συλλογή και τα Count μαζί με τα Items απαριθμούν τις εγγραφές της |
TXLSDiagnosticSeverity και TXLSDiagnosticOperation | Το TXLSDiagnosticSeverity (xlsDiagnosticInfo, xlsDiagnosticWarning, xlsDiagnosticError, xlsDiagnosticFatal) ταξινομεί ένα διαγνωστικό και το TXLSDiagnosticOperation (xlsOperationNone, xlsOperationOpen, xlsOperationSave, xlsOperationCalculate, xlsOperationExport) ονομάζει τη φάση που το παρήγαγε· οι handlers του OnDiagnostic διαβάζουν και τα δύο από το παραδιδόμενο TXLSDiagnostic |
TXLSFormulaDebugSession | Τα CurrentStep, DependencyCount, NodeCount και StepCount εκθέτουν το τρέχον στιγμιότυπο του debugger και τα μεγέθη της ιχνηλάτησής του |
TXLSFormulaTracer | Το StepCount αναφέρει τον αριθμό των καταγεγραμμένων βημάτων αξιολόγησης |
TXLSImportCheck | Τα AddRule, Annotate, KeepOnlyViolations και Violation ρυθμίζουν και εκτελούν την επικύρωση εισαγωγής· τα HeaderRow, FirstRow, LastRow, OnVerifyCell και ViolationCount εκθέτουν τα όρια, την επανάκληση και τον αριθμό αποτελεσμάτων. Οι κανόνες είναι αντικείμενα TlxImportColumnRule των οποίων τα TlxImportRuleFlags επιλέγουν τους ελέγχους για μία στήλη φύλλου εργασίας με βάση τη μονάδα, και κάθε TlxImportViolation αναφέρει τη γραμμή, τη στήλη, το προβληματικό κείμενο και το μήνυμα σφάλματος |
Πολιτικές αποθήκευσης εξωτερικών συνδέσμων
TXLSExternalLinkUpdateMode = (xluPromptUser, xluNever, xluAlways);
property IXLSWorkbook.SaveExternalLinkValues: Boolean;
property IXLSWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
property TXLSXWorkbook.SaveExternalLinkValues: Boolean;
property TXLSXWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
Και οι δύο μηχανές από προεπιλογή αποθηκεύουν τις τιμές στην cache και το xluPromptUser· τα xluNever και xluAlways αλλάζουν μόνο την προτίμηση ενημέρωσης που αποθηκεύεται στο βιβλίο εργασίας και δεν εξουσιοδοτούν ούτε ξεκινούν ποτέ πρόσβαση σε εξωτερικό αρχείο ή δίκτυο
Έλεγχος υπολογισμών και υποδείξεις βιβλίου εργασίας
function TXLSWorkbook.RecalcAndVerify(MaxIssues: Integer = 10000): TXLSCalculationAuditReport;
function TXLSXWorkbook.RecalcAndVerify(MaxIssues: Integer = 10000): TXLSCalculationAuditReport;
function TXLSWorkbook.RecalcAndVerifyEx(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSXWorkbook.RecalcAndVerifyEx(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSWorkbook.RunCalculationAudit(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSWorkbook.FormulaIsVolatile(Formula: WideString): Boolean;
function TXLSWorkbook.AuditOverlayHash(SheetIndex, Row, Col: Integer): Integer;
function TXLSWorkbook.AuditOverlayRead(SheetIndex, Row, Col: Integer; var Value: Variant): Boolean;
procedure TXLSWorkbook.AuditOverlayWrite(SheetIndex, Row, Col: Integer; const Value: Variant);
procedure TXLSWorkbook.AuditOverlayClear;
TXLSCalculationAuditIssueKind = (xlcaiCacheMismatch, xlcaiParseFailure,
xlcaiMissingFunction, xlcaiMissingName, xlcaiUnsupportedArguments,
xlcaiCircularReference, xlcaiExternalReferenceDenied,
xlcaiExternalReferenceMissing, xlcaiDataTableSkipped, xlcaiCancelled,
xlcaiInternalFailure);
TXLSCalculationAuditIssue = record
Kind: TXLSCalculationAuditIssueKind;
SheetIndex: Integer;
SheetName: WideString;
Row: Integer;
Col: Integer;
Formula: WideString;
Symbol: WideString;
Expected: Variant;
Actual: Variant;
ResultCode: Integer;
Stack: WideString;
ExternalTarget: WideString;
end;
TXLSCalculationAuditIssues = array of TXLSCalculationAuditIssue;
TXLSRecalcAuditProgress = procedure(ASender: TObject;
ACurrent, ATotal: Integer; var ACancel: Boolean) of object;
property WorkbookCodeName: WideString;
property CalculationThreadMode: TXLSCalculationThreadMode;
property ForceFullCalculationState: TXLSOptionalBooleanState;
property RefreshAllOnLoadState: TXLSOptionalBooleanState;
Το RecalcAndVerify συνδυάζει αποτυχίες συμβόλων τύπων και αποκλίσεις τιμών cache σε σταθερές δομημένες κατηγορίες με συντεταγμένες φύλλου εργασίας, τύπους, σύμβολα, αναμενόμενες και πραγματικές τιμές, καθώς και οριοθετημένη περικοπή, αφήνοντας ανέπαφες τις cache και τη σημασιολογία του βιβλίου εργασίας. Το RecalcAndVerifyEx εκτελεί τον βαθύ έλεγχο: αξιολογεί κάθε τύπο μία φορά μέσω του γραφήματος εξαρτήσεων σε ένα απομονωμένο overlay αποτελεσμάτων, ώστε τα εξαρτημένα κελιά να διαβάζουν το τρέχον πέρασμα αντί για παρωχημένες cache, ταξινομεί τις αποτυχίες αξιολόγησης (μη υποστηριζόμενα ορίσματα, κυκλικές αναφορές, απορριφθείσες ή ελλιπείς εξωτερικές αναφορές, παραλειφθείς πίνακες δεδομένων, ακύρωση, εσωτερικές αποτυχίες) με κωδικούς αποτελέσματος, καταγράφει μια οριοθετημένη στοίβα κλήσεων ανά αποτυχία, σέβεται ένα όριο ζητημάτων και ένα sink προόδου/ακύρωσης και παραμένει μόνο για ανάγνωση εκτός αν το ApplyResults δεσμεύσει ατομικά τις επανυπολογισμένες τιμές μετά από πλήρως επιτυχημένο πέρασμα πάνω σε αμετάβλητη δομή βιβλίου εργασίας
Κάθε στοιχείο του TXLSCalculationAuditReport.Issues είναι ένα TXLSCalculationAuditIssue· το Kind επιλέγει μία από τις κατηγορίες xlcai*, τα Expected / Actual μεταφέρουν τις συγκρινόμενες τιμές για αποκλίσεις cache, το Stack είναι η οριοθετημένη αλυσίδα κλήσεων αξιολόγησης που αποδίδεται ως Sheet!A1 > Sheet!B2 (πρώτα το εξωτερικότερο πλαίσιο) και το ExternalTarget περιγράφει το εξωτερικό βιβλίο εργασίας για ζητήματα εξωτερικών αναφορών. Το TXLSRecalcAuditOptions.OnProgress είναι ένα sink TXLSRecalcAuditProgress που λαμβάνει την πρόοδο ACurrent / ATotal κόμβων και μπορεί να θέσει το ACancel για να σταματήσει ο έλεγχος στο επόμενο όριο κόμβου με ένα μόνο ζήτημα xlcaiCancelled
Το RunCalculationAudit είναι η είσοδος της μηχανής στην οποία αναθέτουν τα wrappers ελέγχου επιπέδου βιβλίου εργασίας και δέχεται την ίδια εγγραφή επιλογών. Το FormulaIsVolatile αναφέρει αν ένας τύπος θα επέβαλλε επανυπολογισμό σε κάθε πέρασμα (κλήσεις όπως NOW, RAND, TODAY, OFFSET, INDIRECT ή μια αδιάλυτη αναφορά)
Το overlay ελέγχου είναι ένα στρώμα what-if πάνω από τις cache των κελιών: το AuditOverlayWrite αποθηκεύει τιμή αντικατάστασης για ένα κελί (ευρετήριο φύλλου με βάση τη μονάδα, γραμμή και στήλη με βάση το μηδέν, σύμφωνα με τη σύμβαση του υπολογιστή), τα AuditOverlayRead και AuditOverlayHash το ερωτούν και το AuditOverlayClear αδειάζει το στρώμα. Οι καλυμμένες τιμές επιστρέφονται από τα συνηθισμένα getters τιμών κελιών, ώστε ο επανυπολογισμός και ο βαθύς έλεγχος να τις βλέπουν χωρίς τροποποίηση των κελιών του φύλλου εργασίας· το καθάρισμα του overlay επαναφέρει τις αποθηκευμένες τιμές
Οι ιδιότητες υποδείξεων του βιβλίου εργασίας διατηρούν τις καταστάσεις missing, false, true, disabled, automatic και manual όπου η μορφή πηγής τις υποστηρίζει· δεν ξεκινούν ποτέ υπολογισμό, ανανέωση ή εργασίες σε σύστημα αρχείων, δίκτυο ή βάση δεδομένων στο άνοιγμα
property TXLSXTable.ColumnCalculatedFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TXLSXTable.ColumnTotalsFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TDataValidation.ImeMode: TXLSDataValidationImeMode;
property TXLSXDataValidation.ImeModeKind: TXLSDataValidationImeMode;
Οι τύποι υπολογιζόμενης στήλης και γραμμής συνόλων διατηρούν ανεξάρτητες καταστάσεις array απούσα, false, true ή άγνωστη, συμπεριλαμβανομένων των ανέγγιχτων λεκτικών τιμών πηγής και των δομικών επεξεργασιών στηλών· οι τύποι πίνακα απορρίπτονται από τη βαθμωτή επέκταση γραμμών αντί να αλλάζουν σιωπηλά
Οι λειτουργίες IME χρησιμοποιούν ρητές αντιστοιχίσεις BIFF και OOXML, διατηρούν τις άγνωστες τιμές πηγής και απορρίπτουν την τιμή disabled που υπάρχει μόνο σε OOXML όταν συντάσσεται για Classic XLS
Η ρύθμιση του SaveExternalLinkValues σε False παραλείπει τις κλασικές εγγραφές XCT και CRN ή το υποδέντρο sheetDataSet του εξωτερικού βιβλίου XLSX, διατηρώντας παράλληλα τους στόχους των συνδέσμων, τα ονόματα φύλλων, τα εξωτερικά ορισμένα ονόματα, τις σχέσεις, τις αναφορές τύπων, το άγνωστο XML και την cache στη μνήμη· η επαναφορά της ιδιότητας σε True στο ίδιο βιβλίο εργασίας μπορεί να σειριοποιήσει ξανά αυτή τη διατηρημένη cache
Τα ανέγγιχτα μη υποστηριζόμενα tokens προέλευσης παραμένουν διατηρημένα byte προς byte ή λεκτικά, οι ρητές αναθέσεις εκπέμπουν μόνο έγκυρες τιμές, οι αμετάβλητες μονάδες XLSX κρατούν τη διαδρομή αντιγραφής με συμπίεση και η μετατροπή XLS/XLSX μεταφέρει και τις δύο πολιτικές· τα βιβλία εργασίας ODS και κειμένου δεν έχουν αντίστοιχη δήλωση και ανοίγουν με τις προεπιλογές, ενώ τα διατηρημένα τμήματα συνδέσμων DDE και OLE δεν αντιμετωπίζονται ως cache κελιών εξωτερικού βιβλίου εργασίας
Επιθεώρηση και αφαίρεση πλαισίων εργασιών πρόσθετων web
function IXLSWorkbook.HasWebAddinTaskPanes: Boolean;
function IXLSWorkbook.WebAddinTaskPaneCount: Integer;
function IXLSWorkbook.RemoveWebAddinTaskPanes: Integer;
function TXLSXWorkbook.HasWebAddinTaskPanes: Boolean;
function TXLSXWorkbook.WebAddinTaskPaneCount: Integer;
function TXLSXWorkbook.RemoveWebAddinTaskPanes: Integer;
Οι μέθοδοι επιθεώρησης αναγνωρίζουν μόνο εσωτερικές σχέσεις ρίζας πακέτου των οποίων ο τύπος ταυτίζεται ακριβώς με τον τύπο σχέσης του παραθύρου εργασιών πρόσθετου web· οι εξωτερικές σχέσεις, οι τύποι με διαφορετική κεφαλαιοποίηση, οι σχέσεις φύλλων εργασίας και τα ομώνυμα τμήματα αγνοούνται
Η αφαίρεση επικυρώνει πρώτα το πλήρες γράφημα σχέσεων, συμπεριλαμβανομένων των κανονικοποιημένων στόχων, του περιορισμού στη ρίζα του πακέτου, των κυκλώσεων, των ελλιπών τμημάτων και των ορίων πόρων· στη συνέχεια αφαιρεί όλες τις αντίστοιχες σχέσεις ρίζας και μόνο τα προσβάσιμα τμήματα που δεν μοιράζεται άλλη διατηρούμενη σχέση, μαζί με τα τμήματα σχέσεων που ανήκουν σε διαγραμμένες πηγές
Η λειτουργία είναι ατομική και ταυτοδύναμη, τα αφαιρεμένα τμήματα πηγής δεν μπορούν να επανεμφανιστούν μέσω αποθήκευσης με συμπιεσμένη αντιγραφή και οι τύποι περιεχομένου ξαναχτίζονται από το υπόλοιπο πακέτο· τα κακοσχηματισμένα γραφήματα προσθέτουν τον διαγνωστικό κώδικα 1303 και εγείρουν εξαίρεση πριν από την τροποποίηση, ενώ τα Classic XLS και ODS επιστρέφουν False, 0 και -1 χωρίς σάρωση πακέτου
Πολιτική εμφάνισης αντικειμένων βιβλίου εργασίας
TXLSObjectDisplayMode = (xlsodmShowAll, xlsodmShowPlaceholders,
xlsodmHideAll);
property IXLSWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSXWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSPaginationModel.ExportObjectPlaceholders: Boolean;
property TXLSPDFExport.ExportObjectPlaceholders: Boolean;
property TXLSSvgExport.ExportObjectPlaceholders: Boolean;
property TXLSPageImageExporter.ExportObjectPlaceholders: Boolean;
property TXLSPrintDocument.ExportObjectPlaceholders: Boolean;
property TXLSXHtmlExportOptions.ExportObjectPlaceholders: Boolean;
Το Classic XLS αντιστοιχίζει τις τρεις καταστάσεις στην εγγραφή εμφάνισης αντικειμένων του βιβλίου εργασίας και το XLSX τις αντιστοιχίζει στο workbookPr.showObjects· οι απούσες τιμές έχουν προεπιλογή το xlsodmShowAll, τα ανέγγιχτα δεσμευμένα payload του Classic και τα μη υποστηριζόμενα tokens XLSX παραμένουν χωρίς απώλειες και οι ρητές αναθέσεις εκπέμπουν μόνο κανονικές τιμές
Ο προβολέας αποδίδει τη λειτουργία placeholder ως ελαφριά πλαίσια που μεταφέρουν τον διαθέσιμο τύπο, όνομα, κείμενο και εναλλακτικό κείμενο του αντικειμένου· οι exporters διατηρούν πλήρη αντικείμενα από προεπιλογή, ενώ η ρύθμιση του ExportObjectPlaceholders ζητά την ίδια χαμηλού κόστους πολιτική χωρίς αποκωδικοποίηση payload εικόνων ή κατασκευή σκηνών διαγραμμάτων
Το xlsodmHideAll αποτρέπει τη συλλογή σχεδίων και την επέκταση περιοχών με βάση αντικείμενα πριν ξεκινήσει η απόδοση· η μετατροπή βιβλίου εργασίας μεταφέρει και τις τρεις καταστάσεις, το ODS γράφει πλήρη σχέδια για τη λειτουργία placeholder και παραλείπει την έξοδο σχεδίων και media για τη λειτουργία hide-all, ενώ τα φόντα των φύλλων εργασίας παραμένουν ανεξάρτητα
Τιμές βαθμονόμησης απόδοσης και στιγμιότυπα
TXLSRenderCalibration = record
WidthCorrection: Double;
HeightCorrection: Double;
LineSpacing: Double;
CellMarginFactor: Double;
ScreenScaling: Integer;
MeasurementDpi: Integer;
end;
function XLSDefaultRenderCalibration: TXLSRenderCalibration;
function XLSValidateRenderCalibration(const AValue: TXLSRenderCalibration;
out AInvalidField: TXLSRenderCalibrationField): Boolean;
Οι προεπιλεγμένες τιμές είναι 1, 1, 1, 1, 100 και 96· οι διορθώσεις πλάτους και ύψους πρέπει να είναι μεγαλύτερες από μηδέν και μικρότερες από δύο, η απόσταση γραμμών οριοθετείται στο (0, 4], τα περιθώρια κελιών στο [0, 4], η κλιμάκωση οθόνης στο [100, 500] τοις εκατό και το DPI μέτρησης στο [36, 2400]
Τα βιβλία εργασίας Classic XLS και XLSX εκθέτουν τα ίδια μέλη RenderCalibration, CaptureRenderCalibration και ResetRenderCalibration· η ανάθεση ολόκληρης της εγγραφής επικυρώνεται πριν από την τροποποίηση και κάθε λήψη επιστρέφει ένα ανεξάρτητο, κατά σύμβαση αμετάβλητο στιγμιότυπο τιμών για μία λειτουργία απόδοσης
Γεωμετρία απόδοσης και μέτρηση γραμματοσειράς
TXLSRenderGeometryBackend = (xlsrgbAutoFit, xlsrgbPagination, xlsrgbPdf,
xlsrgbSvg, xlsrgbBitmap, xlsrgbPrintPreview, xlsrgbViewer, xlsrgbHtml);
TXLSRenderFont = record
Name: WideString;
Size: Double;
Styles: TXLSRenderFontStyles;
Charset: Byte;
end;
function CreateXLSRenderGeometry(
const ACalibration: TXLSRenderCalibration;
AWorkbookGeneration: UInt64;
ABackend: TXLSRenderGeometryBackend;
ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
property TXLSHTMLExport.RenderGeometry: IXLSRenderGeometry;
property TXLSXHtmlExportSession.RenderGeometry: IXLSRenderGeometry;
Το IXLSRenderGeometry κατέχει μία αμετάβλητη βαθμονόμηση, τη γενιά του βιβλίου εργασίας, την ταυτότητα backend, μια επιφάνεια μέτρησης GDI και έναν οριοθετημένο cache μετρικών τοπικό στη λειτουργία· το MeasureText επιστρέφει πλάτος και ύψος σε pixel, ύψος γραμμής, άνοδο, κάθοδο και αριθμό γραμμών, ενώ τα MaximumDigitWidthPixels, ColumnWidthToPixels, PixelsToColumnWidth, PointsToPixels, PixelsToPoints και UsableCellWidthPixels παρέχουν τις κοινές μετατροπές γεωμετρίας
Η ταυτότητα cache περιλαμβάνει το backend, τη γενιά του βιβλίου εργασίας, όλες τις τιμές βαθμονόμησης, το όνομα της γραμματοσειράς, το ακριβές μέγεθος, τα στυλ, το charset, το πλάτος αναδίπλωσης και το κείμενο· η διόρθωση πλάτους και ύψους εφαρμόζεται μία φορά κατά τη μέτρηση κειμένου, η απόσταση γραμμών επηρεάζει μόνο το ύψος πολλαπλών γραμμών, η διόρθωση περιθωρίου κελιού επηρεάζει μόνο το χρήσιμο πλάτος κειμένου και η κλιμάκωση οθόνης επηρεάζει μόνο την προσομοίωση μέγιστου πλάτους ψηφίου για τα σιωπηρά πλάτη στηλών
Το AutoFit των Classic XLS και XLSX δεσμεύει μία υπηρεσία για κάθε δημόσια λειτουργία, συμπεριλαμβανομένης της μέτρησης συγχωνευμένων περιοχών και της δίφασης MarkSheet, ενώ το TXLSPaginationModel.Build δεσμεύει μία υπηρεσία για το επιλεγμένο RenderBackend· τα σημεία εισόδου PDF, SVG, bitmap, προεπισκόπησης εκτύπωσης, προβολέα βιβλίου εργασίας και HTML επιλέγουν το δικό τους backend πριν από την έξοδο, η αλλαγή της βαθμονόμησης του βιβλίου εργασίας δεν μπορεί να μεταβάλει υπάρχον στιγμιότυπο και η έξοδος δεν γράφει διαστάσεις φύλλου εργασίας
Οι άμεσες κλήσεις HTML βιβλίου εργασίας, φύλλου εργασίας και περιοχής δεσμεύουν μια φρέσκια υπηρεσία xlsrgbHtml, ενώ μια αυξανόμενη TXLSXHtmlExportSession δεσμεύει μία φορά στο BeginExport και επαναχρησιμοποιεί αυτό το στιγμιότυπο για όλα τα φύλλα· και οι δύο exporters εκθέτουν τη διατηρημένη υπηρεσία μέσω του RenderGeometry για διαγνωστικά βαθμονόμησης και cache
Οι ιδιότητες μόνο για ανάγνωση WorkbookGeneration, CacheCapacity και CacheEntryCount του IXLSRenderGeometry αναφέρουν τη δεσμευμένη γενιά και τη πλήρωση της cache για διαγνωστικά, ενώ το ImplicitWidthMaximumDigitWidthPixels επιστρέφει τη μέτρηση πλάτους ψηφίου πίσω από την προσομοίωση σιωπηρού πλάτους στηλών
Το MeasureText γεμίζει μια εγγραφή TXLSRenderTextMetrics (πλάτος, ύψος, ύψος γραμμής, άνοδο, κάθοδο και αριθμό γραμμών σε pixel) από ένα TXLSRenderFont του οποίου το μέλος Styles είναι ένα σύνολο σημαιών TXLSRenderFontStyle (bold, italic, underline, strikethrough)
Εισαγωγή, δημιουργία κώδικα, σύγκριση και παρακολούθηση
TXLSHTMLImport | Οι υπερφορτώσεις LoadFromHTML εισάγουν περιεχόμενο πίνακα HTML από ροή ή αρχείο σε ένα φύλλο εργασίας, με προαιρετικές συντεταγμένες έναρξης, επιλογή πίνακα και διαχωριστικό δεκαδικών |
TXLSCodeGen | Το Language (τύπος TlxCodeGenLanguage: lcgDelphi ή lcgCppBuilder) επιλέγει τη διάλεκτο πηγής των παραγόμενων εντολών, το GenerateToList γράφει τον παραγόμενο κώδικα βιβλίου εργασίας σε μια λίστα συμβολοσειρών και το TlxCodeGenOptions εμπλουτίζει την έξοδο με συγχωνεύσεις, πλάτη στηλών ή μορφές αριθμών (cgoMerges, cgoColumnWidths, cgoNumberFormats· φύλλα και κελιά εκπέμπονται πάντα) |
TXLSXWorkbookCompare | Τα LeftName και RightName επιγράφουν τις εισόδους, το Compare εκτελεί τη σύγκριση και το Diff εκθέτει τις προκύπτουσες εγγραφές TlxCompareDiff ταξινομημένες κατά TlxCompareKind |
TXLSFileMonitor | Το IntervalMs επιλέγει το διάστημα polling και το SynchronizeEvent επιλέγει συγχρονισμένη παράδοση της επανάκλησης· ένας handler OnFileChanged μπορεί να απενεργοποιήσει ή να καταστρέψει τον monitor, ή να αλλάξει το FileName για να ξεκινήσει παρακολούθηση άλλου αρχείου |
TXLSCSVLoader και TXLSCSVSaver | Ο loader αναλύει κείμενο με διαχωριστικά σε μια grid από Variants στη μνήμη — τα ParseFile και ParseStream τη γεμίζουν, τα CellValue, RowCount και ColCount τη διαβάζουν ξανά — με αυτόματα ανιχνευμένο διαχωριστικό (ValueSeparator) και κωδικοποίηση (TXLSCsvEncoding: system ANSI, UTF-16, UTF-8) και προαιρετική ανάδειξη τύπων μέσω DetectTypes και εγγραφών ColumnTypes ανά στήλη (TXLSCsvColumnType: auto, text, number, date, boolean, skip)· τα SkipRows, AutoTrim, LocaleTolerantNumbers και FieldWidths εξειδικεύουν τη διαχείριση σταθερού πλάτους και locale. Το TXLSCSVSaver.SaveAs γράφει τη grid ξανά με quoting κατά RFC 4180 και το QuoteAllStrings επιβάλλει quoting· το TXLSTSVSaver παρακάπτει τον saver για έξοδο διαχωρισμένη με tab |
Βοηθητικά πακέτων και δυαδικής αποθήκευσης
TXLSXOpaquePackage | Το LoadWorkbookXmlMetadata δεσμεύει την κατάσταση XML επιπέδου βιβλίου εργασίας, το MarkAllPartsClean επαναφέρει τις σημαίες dirty και τα WorkbookExtLstXml μαζί με το WorkbookRootAttributesXml εκθέτουν τα διατηρημένα τμήματα XML του βιβλίου εργασίας· το IsDiscardedPart αναφέρει αν ένα όνομα τμήματος αφαιρέθηκε από μια λειτουργία απόρριψης όπως ο καθαρισμός πρόσθετων web |
TXLSFileStorage | Τα Load, LoadFolder, Write και WriteFolder μεταφέρουν περιεχόμενο σύνθετου αρχείου· τα Child και Count απαριθμούν τις θυγατρικές εγγραφές, καθεμία ένα TXLSFileItem — έναν επώνυμο κόμβο αποθήκευσης του οποίου η υποκλάση TXLSFileStream μεταφέρει τα αποθηκευμένα bytes ως TXLSBlob με το DataSize να αναφέρει το μήκος του payload |
TXLSBlob | Το Add προσαρτά ένα άλλο blob, ενώ τα AddByte, AddWord, AddLong, AddDouble, AddString και AddWideString προσαρτούν τυποποιημένες τιμές· τα CopyData, CopyMem, FillByte, Write, Clear, Reset και Dump διαχειρίζονται το περιεχόμενο· τα Buff και DataLength εκθέτουν την αποθήκευση |
TXLSBlobList | Τα Append, AppendList, CopyData και Write συνδυάζουν ή εκπέμπουν εγγραφές· τα Entries και TotalSize εκθέτουν την κατάσταση της λίστας |
TXLSWideStringBuilder | Το AddString προσαρτά κείμενο και το Length αναφέρει τον αθροισμένο αριθμό χαρακτήρων |
Προσθήκες σχεδίασης και προβολέα βιβλίου εργασίας
TXLSFillFormat | Το PictureFill ρυθμίζει μια γέμιση σχήματος με εικόνα, ενώ το FillType επιλέγει το είδος γέμισης (συμπαγές, ντεγκραντέ, εικόνα ή προκαθορισμένη υφή) που εκπέμπει ο writer |
TXLSShapes | Τα AddScrollBar και AddSpinner δημιουργούν στοιχεία ελέγχου φόρμας — τα επιστρεφόμενα αντικείμενα TXLSScrollBar και TXLSSpinner εκθέτουν τη γεωμετρία του στοιχείου ελέγχου και το συνδεδεμένο κελί, και το spinner προσθέτει τα όρια βήματος Min, Max και Inc — ενώ τα RegisterScrollBar και RegisterSpinner καταχωρούν στοιχεία ελέγχου φορτωμένα από ένα βιβλίο εργασίας |
TXLSWorkbookViewer | Τα CanUndo και CanRedo αναφέρουν τη διαθεσιμότητα ιστορικού επεξεργασιών, ενώ το ReferencePickMode ενεργοποιεί διαδραστική επιλογή αναφοράς κελιού ή περιοχής |
Σελιδοποίηση, έξοδος εικόνων και εκτύπωση
TXLSGraphicsBackend | Το DrawTiledImage ζωγραφίζει επανειλημμένα ένα φόντο φύλλου σε όλη την αποκομμένη περιοχή της σελίδας |
TXLSPaginationModel | Τα CompactRangeMode, IncludeDrawings, IncludeGridlines, IncludeCellBorders και PaintPageBackground ελέγχουν το περιεχόμενο της σελίδας· τα RenderDPI, RenderColorMode και RenderSession εκθέτουν την ανάλυση εξόδου, τη διαχείριση χρωμάτων και την ενεργή συνεδρία απόδοσης |
TXLSCellImageExporter | Το Measure υπολογίζει διαστάσεις σε pixel για περιοχές κλασικού ή XLSX· τα ImageFormat, JpegQuality, MaxPixels, MaxBytes, IncludeObjects, IncludeGridlines, IncludeCellBorders, BackgroundColor, TransparentBackground, BeforePaint, AfterPaint και PaginationModel ρυθμίζουν και παρατηρούν την απόδοση |
TXLSPageImageExporter | Τα BeforePaint, AfterPaint, MaxPixels, MaxBytes, BackgroundColor και TransparentBackground εφαρμόζουν τα ίδια paint hooks και τα ίδια όρια ασφαλείας εξόδου στη σελιδοποιημένη εξαγωγή εικόνων |
TXLSPrintDocument | Τα PrintWorksheet, PrintWorkbook και PrintAllVisibleSheets στέλνουν περιεχόμενο κλασικού ή XLSX στον εκτυπωτή VCL· τα FirstPage, PrintRangeOnly, Collate, Copies, OnBeforeNewPage και OnAfterGeneratePage ελέγχουν την εργασία εκτύπωσης |
Μοντέλα διαγραμμάτων κλασικού XLS και αντικείμενα διαγραμμάτων φύλλου εργασίας
TXLSChartSeries | Τα AddTrendline και AddErrorBars δημιουργούν τυποποιημένες επισημάνσεις σειράς, ενώ τα TrendlineCount και ErrorBarCount αναφέρουν τα μεγέθη των συλλογών τους |
TXLSChartAxis | Το HasAxcExtFlag ελέγχει μία ακατέργαστη σημαία AXCEXT χωρίς να απαιτεί από τους καλούντες να αποκωδικοποιήσουν τη μάσκα bit |
TXLSChartModel | Το AxisGroupCount αναφέρει τον αριθμό των ομάδων πρωτεύοντος και δευτερεύοντος άξονα που αποκωδικοποιήθηκαν από το διάγραμμα |
TXLSCustomChart | Το AddAreaData προσαρτά ένα προκατασκευασμένο στοιχείο area για επαναδέσμευση τύπων κατά την αποθήκευση και το ApplyDateAxisModel εφαρμόζει ένα τυποποιημένο μοντέλο ημερομηνίας-άξονα στις ακατέργαστες εγγραφές του διαγράμματος |
TXLSWorksheet | Το AddChartObject αγκυρώνει ένα πλαίσιο διαγράμματος στο φύλλο εργασίας και το συνδέει με τον κοινό chart builder |
TXLSXChartLayoutResolver | Το TryResolve επιλύει ένα ορθογώνιο διάταξης με προαιρετική επικύρωση μεγέθους και το ResolveChart υπολογίζει τα ορθογώνια διαγράμματος, τίτλου, υπομνήματος, περιοχής σχεδίασης και αξόνων |
Τυποποιημένο μοντέλο αποκωδικοποίησης διαγραμμάτων
Η αποκωδικοποιημένη κατάσταση του διαγράμματος εκτίθεται ως απλές εγγραφές και enums, ώστε ο κώδικας επιθεώρησης να μη χρειάζεται ποτέ να διατρέχει ακατέργαστες εγγραφές BIFF: το TXLSChartInfo μεταφέρει τη σύνοψη του αποκωδικοποιημένου διαγράμματος με TXLSChartTypeFamily (cfBar, cfLine, cfPie, cfArea, cfScatter, cfRadar, cfDoughnut, cfSurface, cfBubble), κάθε σειρά αναφέρει TXLSChartSeriesType και το TXLSChart3DState μαζί με το TXLSChart3DInfo περιγράφουν τρισδιάστατες προβολές. Το TXLSChartAxisType (catCategory, catValue, catSeries, catDate) και το TXLSChartLegendPosition ταξινομούν άξονες και υπομνήματα, ενώ το μοντέλο άξονα ημερομηνιών χρησιμοποιεί TXLSChartDateUnit (xcduDays, xcduMonths, xcduYears) και TXLSChartDateValues. Το TXLSCustomChart εκθέτει το αποκωδικοποιημένο μοντέλο μέσω TXLSChartInfo· οι επισημάνσεις γραμμών τάσης και μπαρών σφάλματος είναι τυποποιημένα αντικείμενα (TXLSChartTrendline, TXLSChartErrorBars) προσβάσιμα από κάθε σειρά
Εγγραφές δημιουργίας διαγραμμάτων
Η σύνθεση σε φύλλα διαγραμμάτων και μέσω builder δέχεται απλές εγγραφές αντί για γραφήματα αντικειμένων: τα TXLSChartTrendlineInfo, TXLSChartErrorBarsInfo, TXLSChartDataLabelsInfo και TXLSChartSeriesStyleInfo γεμίζουν τις εγγραφές σειρών που περνιούνται στο TXLSWorksheets.AddChartSheet και στον κοινό chart builder, και το TXLSPivotChartInfo περιγράφει την πλαισίωση pivot chart που χρησιμοποιείται όταν ένα διάγραμμα συνδέεται με pivot πίνακα
Συνημμένα PDF, υπογραφές και εξαγωγή HTML
IXLSPDFAttachmentSource | Το WriteTo στέλνει σε ροή τα bytes του συνημμένου στην εξαγωγή PDF χωρίς να απαιτεί ο exporter να κατέχει τα δεδομένα πηγής |
TXLSPDFExport | Το AttachmentDuplicatePolicy επιλέγει τη διαχείριση διπλών ονομάτων, το AttachmentSpoolThreshold ελέγχει το spooling συνημμένων και το DocumentLanguage γράφει τα μεταδεδομένα γλώσσας του εγγράφου |
TXLSPDFSignature | Τα TextAlign, TextSize, TextColor, TextBold και TextItalic ρυθμίζουν την ορατή εμφάνιση της υπογραφής |
TXLSHTMLExport | Το ViewMode (τύπος TXLSHtmlViewMode: τρέχουσα προβολή ή πλήρης πίνακας λογιστικού φύλλου) επιλέγει την παρουσίαση HTML, ενώ τα HotTrackTargets (set of TXLSHtmlHotTrackTarget) και HotTrackColor ρυθμίζουν τη διαδραστική επισήμανση κελιών και αντικειμένων |
TXLSXHtmlExportOptions | Τα ViewMode, HotTrackTargets και HotTrackColor προσφέρουν τα αντίστοιχα στοιχεία ελέγχου της εξαγωγής XLSX HTML |
Έλεγχος υπολογισμών και στοιχεία ελέγχου βιβλίου εργασίας
TXLSCalculationAuditReport | Το Truncated αναφέρει περικοπή λόγω ορίου ζητημάτων, το StackTruncated αναφέρει περικοπή πλαισίων της στοίβας κλήσεων και το Issues δεικτοδοτεί τα καταγεγραμμένα ζητήματα υπολογισμού |
TXLSUserFunctionRegistry | Το Generation αλλάζει κάθε φορά που αλλάζει το σύνολο των καταχωρισμένων συναρτήσεων χρήστη, επιτρέποντας την ακύρωση των cache δεσμών τύπων |
EXLSReportRecoverableData | Το Category ταυτοποιεί την κατηγορία των ανακτήσιμων δεδομένων αναφοράς που παρουσιάζεται στον καλούντα |
IXLSWorkBook | Το ManualCalculationThreadCount οριοθετεί τον αριθμό των workers που χρησιμοποιεί ο χειροκίνητος υπολογισμός |
TXLSXDataValidation | Το HasUnknownImeMode αναφέρει μια τιμή λειτουργίας IME που το HotXLS διατήρησε αλλά δεν αναγνωρίζει |
TXLSXTable | Τα ColumnCalculatedFormulaArrayRaw και ColumnTotalsFormulaArrayRaw εκθέτουν το πρωτότυπο κείμενο τύπου πίνακα για τις στήλες του πίνακα |
Συμβατότητα παλαιού τύπου πλαισίωσης PivotCache
TXLSPivotCache | Το RawBucketIndex ταυτοποιεί τη θέση στην υπο-ροή πηγής, το RawFramingIsLegacy ταυτοποιεί μια παλαιά πλαισίωση HotXLS, το RawModelIsComplete αναφέρει αν το τυποποιημένο μοντέλο αναπαριστά κάθε εγγραφή και το CanUpgradeFraming αναφέρει αν η προαιρετική τυποποιημένη επανέκδοση είναι ασφαλής |
TXLSPivotCache | Το StreamId εκθέτει την ταυτότητα της ροής cache του κλασικού, το SourceDataType εκθέτει τον κλασικό τύπο των δεδομένων πηγής και το RawHasStorageStream αναφέρει αν μια φορτωμένη cache προήλθε από ανεξάρτητη ροή αποθήκευσης PivotCache |
TXLSWorkbook | Το UpgradeLegacyPivotCacheFraming ενεργοποιεί την επανεγγραφή μόνο παλαιών πλαισιώσεων cache HotXLS των οποίων το τυποποιημένο μοντέλο είναι πλήρες· η συνηθισμένη αναπαραγωγή ακατέργαστης cache παραμένει η προεπιλογή |
Το StreamId γράφεται ως εγγραφή SXStreamID ([MS-XLS] §2.4.303) και επαναλαμβάνεται ως πεδίο idstm της επικεφαλίδας SXDB, το οποίο πρέπει να ταυτίζεται με αυτό· το SourceDataType γράφεται ως εγγραφή SXVS ([MS-XLS] §2.4.317: $0001 φύλλο εργασίας, $0002 εξωτερικό, $0004 ενοποίηση, $0010 σενάριο) και επαναλαμβάνεται ως πεδίο vsType της επικεφαλίδας SXDB, το οποίο πρέπει να ταυτίζεται με αυτό. Οι cache χτισμένες από εύρος φύλλου εργασίας ξεκινούν με τον τύπο φύλλου εργασίας, ενώ οι cache που ξαναδιαβάζονται από αρχείο κρατούν την τιμή που μετέφερε η υπο-ροή τους, ώστε ο writer BIFF να μην αφήνει ποτέ πεδίο SXDB που ονοματίζει εγγραφή που δεν εξέδωσε· το RawHasStorageStream επισημαίνει μια cache φορτωμένη από τη δική της ροή αποθήκευσης, της οποίας ο descriptor καθολικού βιβλίου εργασίας προηγείται των καταχωρημένων εγγραφών
Ενσωμάτωση προχείρου και επιλογές επικόλλησης
TXLSPasteOption = (xlpoValuesOnly, xlpoInsertRows, xlpoInsertCols);
TXLSPasteOptions = set of TXLSPasteOption;
function XLSGetClipboardText: WideString;
function XLSSetClipboardText(const Text: WideString): Boolean;
function XLSSetClipboardTextAndHtml(const Text: WideString;
const Html: AnsiString): Boolean;
function XLSBuildHtmlClipboard(const Html: AnsiString): AnsiString;
function XLSEncodeClipboardField(const Text: WideString): WideString;
function XLSClipboardHasText: Boolean;
function XLSParseClipboardGrid(const ClipboardText: WideString;
Loader: TXLSCSVLoader): Boolean;
function XLSClipboardHasXmlSpreadsheet: Boolean;
function XLSGetClipboardXmlSpreadsheet: WideString;
function XLSClipboardHasBiff8: Boolean;
Οι επιλογές επικόλλησης είναι κοινές στις υπερφορτώσεις PasteFromClipboard και των δύο facades: το xlpoValuesOnly κρατά τις τιμές cache των κελιών τύπων και παραλείπει μορφοποιήσεις και συγχωνεύσεις, ενώ τα xlpoInsertRows και xlpoInsertCols μετατοπίζουν το υπάρχον περιεχόμενο πριν προσαρμοστεί το μπλοκ
Τα βοηθητικά τυλίγουν το πρόχειρο των Windows για διαλειτουργικότητα λογιστικών φύλλων: τα βοηθητικά κειμένου χρησιμοποιούν CF_UNICODETEXT (με fallback σε CF_TEXT μέσω της τρέχουσας σελίδας κωδικών ANSI), το XLSSetClipboardTextAndHtml γράφει κείμενο και ένα styled payload HTML Format σε μία συναλλαγή, το XLSBuildHtmlClipboard υπολογίζει τις μετατοπίσεις byte CF_HTML για έγγραφο ή τμήμα, και το XLSEncodeClipboardField βάζει σε εισαγωγικά ένα πεδίο διαχωρισμένο με tab. Το XLSParseClipboardGrid αναλύει κείμενο του προχείρου ως γραμμές διαχωρισμένες με tab, με το ίδιο type sniffing που χρησιμοποιεί το TXLSCSVLoader για CSV, και οι βοηθητικές Biff8 ανιχνεύουν και διαβάζουν την εγγενή ροή που το ίδιο το Excel τοποθετεί στο πρόχειρο, ώστε τα επικολλημένα δεδομένα να διατηρούν τιμές, τύπους και μορφοποίηση χωρίς απώλεια κειμένου
Επίλυση κειμένου εμφάνισης κελιού
TXLSCellDisplayMode = (xcdmFormattedValue, xcdmFormulaText,
xcdmSuppressedZero);
TXLSCellDisplayOptions = record
ShowFormulas: Boolean;
ShowZeros: Boolean;
SheetProtected: Boolean;
FormulaWidthFactor: Double;
DateSerialZero: Double;
end;
TXLSCellDisplayInput = record
HasFormula: Boolean;
FormulaHidden: Boolean;
IsNumericZero: Boolean;
FormulaText: WideString;
FormattedText: WideString;
end;
TXLSCellDisplayResult = record
Mode: TXLSCellDisplayMode;
Text: WideString;
TreatAsText: Boolean;
EffectiveWidthFactor: Double;
end;
function XLSDefaultCellDisplayOptions: TXLSCellDisplayOptions;
function XLSNormalizeFormulaDisplayText(const FormulaText: WideString): WideString;
function XLSResolveCellDisplay(const Options: TXLSCellDisplayOptions;
const Input: TXLSCellDisplayInput): TXLSCellDisplayResult;
Ένας κοινός resolver αποφασίζει τι δείχνει ένα κελί για μια δεδομένη κατάσταση προβολής: τύπους αντί για τιμές, κατασταλμένα μηδενικά, κρυφό κείμενο τύπων σε προστατευμένα φύλλα και τον διπλασιασμένο συντελεστή πλάτους που το Excel εφαρμόζει στην εμφάνιση τύπων. Ο προβολέας του βιβλίου εργασίας και οι renderers τον καλούν μέσω των σημείων εισόδου display-options τους, και οι εφαρμογές μπορούν να καλέσουν απευθείας το XLSResolveCellDisplay με τις δικές τους εγγραφές εισόδου· το XLSDefaultCellDisplayOptions επιστρέφει τις κανονικές προεπιλογές και το XLSNormalizeFormulaDisplayText κανονικοποιεί μια συμβολοσειρά τύπου για εμφάνιση
Αντικείμενα επικύρωσης δεδομένων κλασικού XLS
TXLSDataValidationType = (xlsDvAny, xlsDvWhole, xlsDvDecimal, xlsDvList,
xlsDvDate, xlsDvTime, xlsDvTextLength, xlsDvCustom);
TXLSDvErrorStyle = (xlsDvErrStop, xlsDvErrWarning, xlsDvErrInformation);
TDVRange = class; { one validation rule over one or more ranges }
TDVRangeList = class; { the per-sheet rule collection }
TDataValidator = class; { engine that checks edits against the rules }
Οι τυποποιημένες βοηθητικές TXLSWorksheet.Add*Validation δημιουργούν κανόνες TDVRange στο TDVRangeList του φύλλου· κάθε κανόνας μεταφέρει τον TXLSDataValidationType του, τα όρια, τα μηνύματα εισόδου και σφάλματος και τον TXLSDvErrorStyle. Το TDataValidator αξιολογεί μια επεξεργασία έναντι των κανόνων και αναφέρει αν η τιμή γίνεται αποδεκτή, που είναι και ο έλεγχος πίσω από τις προτροπές επικύρωσης του ίδιου του Excel
Σάρωση και επίλυση ευρετηριασμένων χρωμάτων
TXLSIndexedColorKind = (xickPalette, xickAutomatic, xickSystem, xickInvalid);
TXLSSystemColorRole = (xscrNone, xscrWindowText, xscrWindowBackground,
xscrChartText, xscrChartBackground, xscrChartNeutral, xscrToolTipText);
TXLSIndexedColorResolution = record
Kind: TXLSIndexedColorKind;
RawIndex: Int64;
PaletteSlot: Integer;
SystemColorRole: TXLSSystemColorRole;
ARGB: LongWord;
HasResolvedColor: Boolean;
end;
TXLSNearestIndexedColorMatch = record
InputARGB: LongWord;
ColorIndex: Integer;
PaletteSlot: Integer;
ARGB: LongWord;
DistanceSquared: Double;
ExactMatch: Boolean;
end;
TXLSIndexedColorUsageKind = (xicukFont, xicukFillForeground,
xicukFillBackground, xicukGradient, xicukBorder, xicukConditionalFormat,
xicukChart, xicukShape, xicukComment, xicukWorksheet, xicukOther);
Αυτές οι εγγραφές υποστηρίζουν τις μεθόδους επιπέδου βιβλίου εργασίας ResolveIndexedColor, NearestIndexedColor και ScanIndexedColorUsage: μια επίλυση αναφέρει από ποια από τις τέσσερις πηγές TXLSIndexedColorKind προήλθε ένα ευρετηριασμένο token, μαζί με την υποδοχή παλέτας, τον ρόλο χρώματος συστήματος και το κανονικοποιημένο ARGB, η αναζήτηση κοντινότερου χρώματος προσθέτει την τετραγωνική απόσταση RGB και τη σημαία ακριβούς ταύτισης, και η σάρωση χρήσης επισημαίνει κάθε κατηγορία καταναλωτή που δεσμεύει μια υποδοχή παλέτας. Η βιβλιοθήκη διατηρεί μια εσωτερική cache TXLSIndexedColorMatcher με κλειδί τη γενιά της παλέτας — το FindNearest απαντά τα ερωτήματα κοντινότερου χρώματος από αυτήν και το UpdateSlot διορθώνει μία υποδοχή παλέτας — ώστε οι επαναλαμβανόμενες επιλύσεις να μένουν χωρίς δεσμεύσεις μνήμης
Βοηθητικές συναρτήσεις αναφορών A1
function XLSA1CellRef(ARow, ACol: Integer): WideString;
function XLSTryParseA1CellRef(const ARef: WideString;
out ARow, ACol: Integer): Boolean;
function XLSTryParseA1RangeRef(const ARef: WideString;
out ARow1, ACol1, ARow2, ACol2: Integer): Boolean;
Αυτόνομες βοηθητικές για τον ίδιο συμβολισμό A1 που δέχονται τα API του βιβλίου εργασίας: μορφοποιούν συντεταγμένες με βάση το μηδέν ως αναφορά κελιού A1 και αναλύουν αναφορές κελιού ή περιοχής προς την αντίθετη κατεύθυνση, επιστρέφοντας False για κακοσχηματισμένη είσοδο αντί να εγείρουν εξαίρεση
Δείτε επίσης