Dokumentacija HotXLS

Tokeni formula i korisničke funkcije

HotXLS izlaže tokove tokena formula u vlasništvu pozivatelja za gubitke bez gubitaka i zaštićeni povratni zapis u oba pogona radnih knjiga, uz hijerarhijske registre korisničkih funkcija za prilagođeni izračun

Model tokena

TXLSFormulaTokenClass, TXLSFormulaTokenKind i TXLSFormulaTokenSource klasificiraju svaki TXLSFormulaToken i bilježe je li došao iz raščlanjenog teksta, klasičnih BIFF bajtova ili drugog podržanog izvora

TXLSFormulaTokenKind, Opcode, BaseOpcode, TokenClass, RawBytes, TextValue, NumberValue, IntegerValue, ArgumentCount, ExternSheetIndex, Row1, Col1, Row2, Col2, Row1Relative, Col1Relative, Row2Relative, Col2Relative, ReferenceUsesOffsets, Supported, ArrayRows, ArrayCols, ArrayValueCount i ArrayValues
TXLSFormulaTokenStreamDecodeBiff, Clone, CloneSyntaxTree, BindContext, CanCompileFor, CanWriteBiffAt, ReplaceReference, Count, Items, Rgce, RgbExtra, BiffWritable i BiffVersion
TXLSCompiledFormulaCreateTokenStream vraća klon toka tokena kompilirane formule u vlasništvu pozivatelja

Sintaksno stablo

CloneSyntaxTree vraća parsirano stablo TXLSSyntaxItem čvorova u vlasništvu pozivatelja za strukturni uvid: svaki čvor izvještava svoj ItemType, literalni sadržaj (Value, IntValue, DecValue), vodeće Spaces, veze stabla (Parent, Child, ChildCount), referentni list kao TXLSRangeItem kroz Range te podatke konstanti polja (ArrayRows, ArrayCols, ArrayValueCount i unose TXLSArraySerVal u ArrayValues). Stablo je odvojena kopija, pa njegov obilazak nikada ne dira kompilirane formule radne knjige, a članovi za mutaciju (AddChild, PushChild, CopyObject, OffsetCopyReferences, AdjustForShift te TXLSRangeItem.CopyObject / AdjustForShift) postoje za alate koji prepisuju klonirano stablo prije ponovne kompilacije

Ulazne točke radne knjige

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 i SetFormulaTokens zadržavaju eksplicitno vlasništvo te provjeravaju kontekst, BIFF verziju, podršku za tokene, vlasništvo nad poljem i granice referenci prije nego što se ćelija promijeni

Registri korisničkih funkcija

TXLSUserFunctionResolver i TXLSUserFunctionRegistry pružaju pretragu po nazivu kroz RegisterHandler, UnregisterHandler, Clear, Contains, TryGetHandler i Count

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

IXLSWorkbook, TXLSWorkbook i TXLSXWorkbook izlažu RegisterUserFunction, UnregisterUserFunction, ClearUserFunctions, RegisteredUserFunctionCount, RegisterGlobalUserFunction, UnregisterGlobalUserFunction, ClearGlobalUserFunctions i RegisteredGlobalUserFunctionCount

IXLSWorkbook, TXLSWorkbook i TXLSXWorkbook izlažu RegisterUserFunction, UnregisterUserFunction, ClearUserFunctions, RegisteredUserFunctionCount, RegisterGlobalUserFunction, UnregisterGlobalUserFunction, ClearGlobalUserFunctions i RegisteredGlobalUserFunctionCount

Ekvivalentne ulazne točke na razini jedinice su XLSRegisterGlobalUserFunction, XLSUnregisterGlobalUserFunction, XLSClearGlobalUserFunctions, XLSRegisteredGlobalUserFunctionCount i XLSGlobalUserFunctionRegistered

TXLSCalculator.OnUserFunctionResolve sudjeluje prije povratnog poziva zastarjelog događaja, a rukovatelji registra pozivaju se izvan zaključavanja registra kako bi se rukovatelj mogao sigurno sam odjaviti

Dijagnostika formula

TXLSXFormulaIssueKind, TXLSXFormulaLocation i TXLSXFormulaIssue vraća TXLSXWorkbook.AnalyzeFormulaIssues za nedostajuće funkcije, vanjske reference i komponente kružnih referenci

Pregled makro-listova

TXLSSheetKind razlikuje radni list, makro-list, list grafikona, VBA modul i nepoznate zapise listova kroz TXLSWorksheet.SheetKind; TXLSMacroRisk, TXLSMacroCommandInfo i TXLSMacroCommandArray opisuju tipizirane rezultate TXLSWorksheet.ScanMacroCommands

Spajanje AutoFit i tipovi sortiranja

TXLSMergedAutoFitStrategy i TXLSXMergedAutoFitStrategy biraju prvi, zadnji ili uravnoteženi rast za spojene raspone, dok TXLSSortOrientation, TXLSSortFormulaMode i TXLSSortCompareEvent upravljaju vertikalnim ili horizontalnim stabilnim sortiranjem i premještanjem formula

Vidi također