Dokumentácia HotXLS

Tokeny vzorcov a používateľské funkcie

HotXLS sprístupňuje toky tokenov vzorcov vlastnené volajúcim na bezztrátové skúmanie a chránený spätný zápis v oboch engine zošitov, plus hierarchické registre používateľských funkcií pre vlastný výpočet

Model tokenov

TXLSFormulaTokenClass, TXLSFormulaTokenKind a TXLSFormulaTokenSource klasifikujú každý TXLSFormulaToken a zaznamenávajú, či pochádza z parsovaného textu, klasických BIFF bajtov alebo iného podporovaného zdroja

TXLSFormulaTokenKind, Opcode, BaseOpcode, TokenClass, RawBytes, TextValue, NumberValue, IntegerValue, ArgumentCount, ExternSheetIndex, Row1, Col1, Row2, Col2, Row1Relative, Col1Relative, Row2Relative, Col2Relative, ReferenceUsesOffsets, Supported, ArrayRows, ArrayCols, ArrayValueCount a ArrayValues
TXLSFormulaTokenStreamDecodeBiff, Clone, CloneSyntaxTree, BindContext, CanCompileFor, CanWriteBiffAt, ReplaceReference, Count, Items, Rgce, RgbExtra, BiffWritable a BiffVersion
TXLSCompiledFormulaCreateTokenStream vracia klon toku tokenov kompilovaného vzorca vlastnený volajúcim

Vstupné body zošita

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 a SetFormulaTokens ponechávajú vlastníctvo explicitné a validujú kontext, verziu BIFF, podporu tokenov, vlastníctvo polí a hranice referencií pred zmenou bunky

Registre používateľských funkcií

TXLSUserFunctionResolver a TXLSUserFunctionRegistry poskytujú vyhľadávanie podľa názvu cez RegisterHandler, UnregisterHandler, Clear, Contains, TryGetHandler a Count

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

IXLSWorkbook, TXLSWorkbook a TXLSXWorkbook sprístupňujú RegisterUserFunction, UnregisterUserFunction, ClearUserFunctions, RegisteredUserFunctionCount, RegisterGlobalUserFunction, UnregisterGlobalUserFunction, ClearGlobalUserFunctions a RegisteredGlobalUserFunctionCount

Ekvivalentné vstupné body na úrovni jednotky sú XLSRegisterGlobalUserFunction, XLSUnregisterGlobalUserFunction, XLSClearGlobalUserFunctions, XLSRegisteredGlobalUserFunctionCount a XLSGlobalUserFunctionRegistered

TXLSCalculator.OnUserFunctionResolve sa zúčastňuje pred starším fallbackom udalostí a obslužné rutiny registra sú volané mimo zámku registra, takže obslužná rutina sa môže bezpečne odregistrovať

Diagnostika vzorcov

TXLSXFormulaIssueKind, TXLSXFormulaLocation a TXLSXFormulaIssue vracia TXLSXWorkbook.AnalyzeFormulaIssues pre chýbajúce funkcie, externé referencie a komponenty cyklických závislostí

Skúmanie makro-hárkov

TXLSSheetKind rozlišuje hárok, makro hárok, grafový hárok, modul VBA a neznáme záznamy hárkov cez TXLSWorksheet.SheetKind; TXLSMacroRisk, TXLSMacroCommandInfo a TXLSMacroCommandArray opisujú typované výsledky z TXLSWorksheet.ScanMacroCommands

Zlúčené typy AutoFit a triedenia

TXLSMergedAutoFitStrategy a TXLSXMergedAutoFitStrategy vyberajú prvý, posledný alebo vyvážený rast pre zlúčené rozsahy, zatiaľ čo TXLSSortOrientation, TXLSSortFormulaMode a TXLSSortCompareEvent riadia vertikálne alebo horizontálne stabilné triedenie a pohyb vzorcov

Pozri tiež