Τεκμηρίωση HotXLS

Διακριτικά τύπων και συναρτήσεις χρήστη

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

Μοντέλο διακριτικών

Τα TXLSFormulaTokenClass, TXLSFormulaTokenKind και TXLSFormulaTokenSource ταξινομούν κάθε TXLSFormulaToken και καταγράφουν αν προήλθε από αναλυμένο κείμενο, κλασικά byte BIFF ή κάποια άλλη υποστηριζόμενη πηγή

TXLSFormulaTokenKind, Opcode, BaseOpcode, TokenClass, RawBytes, TextValue, NumberValue, IntegerValue, ArgumentCount, FunctionIndex, ExternSheetIndex, Row1, Col1, Row2, Col2, Row1Relative, Col1Relative, Row2Relative, Col2Relative, ReferenceUsesOffsets, Supported, ArrayRows, ArrayCols, ArrayValueCount και ArrayValues
TXLSFormulaTokenStreamDecodeBiff, Clone, CloneSyntaxTree, BindContext, CanCompileFor, CanWriteBiffAt, ReplaceReference, Count, Items, Source, FormulaText, FullyDecoded, Rgce, RgbExtra, BiffWritable και BiffVersion
TXLSCompiledFormulaΤο CreateTokenStream επιστρέφει ένα κλώνο της ροής διακριτικών του μεταγλωττισμένου τύπου που ανήκει στον καλούντα

Δέντρο σύνταξης

Η CloneSyntaxTree επιστρέφει ένα parsed δέντρο κόμβων TXLSSyntaxItem ιδιοκτησίας του καλούντα, για δομική επιθεώρηση: κάθε κόμβος αναφέρει το ItemType του, το literal payload (Value, IntValue, DecValue), τα αρχικά Spaces, τους συνδέσμους του δέντρου (Parent, Child, ChildCount), το φύλλο αναφοράς ως TXLSRangeItem μέσω του Range, και τα δεδομένα σταθεράς πίνακα (ArrayRows, ArrayCols, ArrayValueCount και οι εγγραφές TXLSArraySerVal στα ArrayValues). Το δέντρο είναι αποκομμένο αντίγραφο, ώστε η περιήγησή του να μην πειράζει ποτέ τους μεταγλωττισμένους τύπους του βιβλίου εργασίας, και τα μέλη μετάλλαξης (AddChild, PushChild, CopyObject, OffsetCopyReferences, AdjustForShift και τα TXLSRangeItem.CopyObject / AdjustForShift) υπάρχουν για εργαλεία που ξαναγράφουν ένα κλωνοποιημένο δέντρο πριν την επαναμεταγλώττιση

Σημεία εισόδου βιβλίου εργασίας

Tokens := Worksheet.ParseFormulaTokens('SUM(A1:A4)', 1, 1);
try
  if Tokens.ReplaceReference(OldRef, NewRef) then
    Worksheet.SetFormulaTokens(1, 1, Tokens);
finally
  Tokens.Free;
end;

Τα ParseFormulaTokens, GetFormulaTokens, FormulaTokensToText και SetFormulaTokens διατηρούν ρητή την ιδιοκτησία και επικυρώνουν το πλαίσιο, την έκδοση BIFF, την υποστήριξη διακριτικών, την ιδιοκτησία πινάκων και τα όρια αναφορών πριν αλλάξει ένα κελί

Μητρώα συναρτήσεων χρήστη

Τα TXLSUserFunctionResolver και TXLSUserFunctionRegistry παρέχουν αναζήτηση με όνομα μέσω των RegisterHandler, UnregisterHandler, Clear, Contains, TryGetHandler και Count

Workbook.RegisterUserFunction('NETMARGIN', CalculateNetMargin);
Workbook.RegisterGlobalUserFunction('FISCALYEAR', CalculateFiscalYear);
try
  Workbook.Calculate;
finally
  Workbook.UnregisterUserFunction('NETMARGIN');
  Workbook.UnregisterGlobalUserFunction('FISCALYEAR');
end;

Τα IXLSWorkbook, TXLSWorkbook και TXLSXWorkbook εκθέτουν τα RegisterUserFunction, UnregisterUserFunction, ClearUserFunctions, RegisteredUserFunctionCount, RegisterGlobalUserFunction, UnregisterGlobalUserFunction, ClearGlobalUserFunctions και RegisteredGlobalUserFunctionCount

Τα αντίστοιχα σημεία εισόδου σε επίπεδο μονάδας είναι τα XLSRegisterGlobalUserFunction, XLSUnregisterGlobalUserFunction, XLSClearGlobalUserFunctions, XLSRegisteredGlobalUserFunctionCount και XLSGlobalUserFunctionRegistered

Το TXLSCalculator.OnUserFunctionResolve συμμετέχει πριν από το παλαιού τύπου fallback γεγονότος και οι χειριστές μητρώου καλούνται εκτός του κλειδώματος του μητρώου, ώστε ένας χειριστής να μπορεί να απεγγραφεί με ασφάλεια

Επικίνδυνα ονόματα εξωτερικών συναρτήσεων και συναρτήσεων τύπου macro μπλοκάρονται πριν την αξιολόγηση των ορισμάτων και την αναζήτηση χειριστή, εκτός αν το AllowUnsafeFormulaCallbacks έχει ενεργοποιηθεί ρητά για το βιβλίο εργασίας ή για τη μεμονωμένη contextual αξιολόγηση· τα συνηθισμένα ονόματα συναρτήσεων χρήστη παραμένουν διαθέσιμα εξ ορισμού

Διαγνωστικά τύπων

Τα TXLSXFormulaIssueKind, TXLSXFormulaLocation και TXLSXFormulaIssue επιστρέφονται από το TXLSXWorkbook.AnalyzeFormulaIssues για ελλιπείς συναρτήσεις, εξωτερικές αναφορές και στοιχεία κυκλικών εξαρτήσεων

Επιθεώρηση φύλλων μακροεντολών

Το TXLSSheetKind διακρίνει φύλλο εργασίας, φύλλο μακροεντολών, φύλλο γραφήματος, μονάδα VBA και άγνωστες εγγραφές φύλλου μέσω του TXLSWorksheet.SheetKind· τα TXLSMacroRisk, TXLSMacroCommandInfo και TXLSMacroCommandArray περιγράφουν τα τυποποιημένα αποτελέσματα από το TXLSWorksheet.ScanMacroCommands

Τύποι Merged AutoFit και ταξινόμησης

Τα TXLSMergedAutoFitStrategy και TXLSXMergedAutoFitStrategy επιλέγουν πρώτη, τελευταία ή ισορροπημένη ανάπτυξη για συγχωνευμένα εύρη, ενώ τα TXLSSortOrientation, TXLSSortFormulaMode και TXLSSortCompareEvent ελέγχουν κάθετη ή οριζόντια σταθερή ταξινόμηση και μετακίνηση τύπων

Δείτε επίσης