Dokumentácia HotXLS

Ďalšie členy knižničného API

Táto stránka dopĺňa referenciu verejných typov, ktoré podporujú primárne API zošitov, hárkov, vykresľovania, importu, diagnostiky a prehliadača, ale nevyžadujú samostatnú príručku zameranú na konkrétnu úlohu

Filtrovanie a podmienené formátovanie

TXLSAutofilterAdd, AddAutofilterData, AssignFrom, Clear a ParseAutofilterData upravujú alebo importujú definíciu filtra; Defined, FirstRow, FirstCol, LastCol, LastRow a FieldCount sprístupňujú jeho aktívne medze a počet filtrovaných stĺpcov
TXLSAutofilterItemShape sprístupňuje kreslenie tlačidla filtra priradeného k položke a načítané kritérium filtra je dostupné ako záznam operandu TXLSAutofilterDOPER — DataType volí formu operandu a grbitSgn nesie bity znamienka a príznakov — na kontrolu alebo roundtrip úpravy
TXLSDataBarSpecAxisColor, AxisIsThemeColor, AxisThemeColorId, AxisThemeColorTint a ClearAxisThemeColor riadia os; Direction, GradientFill, NegativeBarBorderColorSameAsPositive, NegativeBarColor, NegativeBarColorSameAsPositive a NegativeBorderColor riadia vzhľad lišty; IsIndexedColor, IndexedColorIndex a ClearIndexedColor spravujú farbu lišty ako index palety
TXLSIconSetSpecThresholdEqualsInclude volí vrátane alebo výlučné porovnanie pre každý práh sady ikon
TXLSCfValueIsIndexedColor a IndexedColorIndex hlásia prahovú farbu uloženú ako starší index palety, ClearIndexedColor túto formu opäť odstráni a farby motívov alebo priame farby ostanú dostupné prostredníctvom existujúcich prístupových metód

TXLSCfValue, TXLSDataBarSpec, TXLSColorScaleSpec, TXLSIconSetSpec a TXLSDxfStyle prijímajú AttachWriteGuardOwner, ktorý prepojí objekt pravidla s jeho vlastniacim zošitom, takže úpravy automaticky získajú hlídača zápisu; vlastník implementuje TXLSCondFormatWriteGuardOwner, ktorého jediná metóda AcquireWriteGuard odovzdá pravidlu hlídača zápisu zošita. TXLSDxfStyle pridáva FontColorIndex s FontColorIsIndexed a dvojice FillFgColorIndex / FillFgColorIsIndexed a FillBgColorIndex / FillBgColorIsIndexed pre farby pravidiel ako index palety, plus prepisy rozdielového písma FontName, FontSize a FontScheme (prázdny reťazec, veľkosť v bodoch alebo slot písma motívu, napríklad major / minor) vedľa existujúcich členov pre tučné, kurzívu, podčiarknutie a farbu; každé priradenie získa hlídača zápisu a označí pravidlo ako dirty, aby sa pri ďalšom zápise vyslalo znova

TXLSConnections, TXLSDataTables a TXLSQueryTables sprístupňujú OnAcquireWriteGuard (typ TXLSConnectionAcquireWriteGuard, TXLSDataTableAcquireWriteGuard a TXLSQueryTableAcquireWriteGuard), háčik, ktorým ich editačné cesty pred mutáciou získavajú IXLSWorkbookWriteGuard vlastniaceho zošita a potom posúvajú generáciu zošita; hlídač si zaznamenáva StartGeneration a Complete označí zápis za dokončený, takže sa môžu prestavať závislé medzipamäte

Zachované dátové pripojenia nesú typovaný popis: TXLSConnectionKind (xlckUnknown, xlckOdbc, xlckDao, xlckFile, xlckWeb, xlckOleDb, xlckText, xlckAdo) klasifikuje pripojenie, TXLSConnectionCredentials (xlccIntegrated, xlccNone, xlccStored, xlccPrompt) zaznamenáva jeho režim overovania a každá hodnota parametra pripojenia je označená TXLSConnectionParameterValueKind (xlcpvNone, xlcpvBoolean, xlcpvDouble, xlcpvInteger, xlcpvString, xlcpvCell). Údajové tabuľky what-if hlásia uložený druh definície cez TXLSDataTableKind

Údajové tabuľky what-if a zoskupovanie krížových tabuliek

TXLSDataTableAssign, ContainsCell a IsRoot kopírujú a skúmajú tabuľku; Kind, FirstRow, FirstCol, LastCol, LastRow, AlwaysCalculate, ColumnInputCol, ColumnInputRow, ColumnInputDeleted, RowInputCol, RowInputRow a RowInputDeleted sprístupňujú uloženú definíciu výpočtu
TXLSDataTablesAdd, AddExisting, Delete, Clear, Assign, AdjustForShift a Offset spravujú kolekciu; FindByCell a FindRoot vyhľadajú tabuľku obsahujúcu danú bunku alebo z nej zakorenenú; Count, Items a OnChange sprístupňujú stav kolekcie
TXLSPivotCacheFieldGroupBaseField a GroupParentField sprístupňujú vzťahy medzi zoskupeným poľom a jeho zdrojovým alebo nadradeným poľom

Prahové hodnoty sád ikon možno vykresľovať alebo validovať programovo: XLSCfIconSetCount hlási, koľko ikon definuje TXLSIconSetType, a XLSBuildCfIconGeometry naplní TXLSCfIconGeometry primitívami (TXLSCfIconPrimitive, druh TXLSCfIconPrimitiveKind: cfipPolygon, cfipEllipse, cfipRect, cfipLine) a bodmi (TXLSCfIconPoint), ktoré vykreslia jednu ikonu, takže vlastné renderery zodpovedajú vstavaným tvarom ikon Excelu

Diagnostika, sledovanie vzorcov a validácia

TXLSDiagnosticCode, NativeCode, Message, Severity, ExceptionClass, PartName, RecordId, SheetIndex, SheetName a StreamOffset identifikujú jednu diagnostiku analyzátoru, zapisovača alebo balíka
TXLSDiagnosticsAdd pridá diagnostiku, Clear resetuje kolekciu a Count spolu s Items vyčísľujú jej položky
TXLSDiagnosticSeverity a TXLSDiagnosticOperationTXLSDiagnosticSeverity (xlsDiagnosticInfo, xlsDiagnosticWarning, xlsDiagnosticError, xlsDiagnosticFatal) klasifikuje jednu diagnostiku a TXLSDiagnosticOperation (xlsOperationNone, xlsOperationOpen, xlsOperationSave, xlsOperationCalculate, xlsOperationExport) pomenúva fázu, ktorá ju vyprodukovala; handlery OnDiagnostic si obe prečítajú z doručenej TXLSDiagnostic
TXLSFormulaDebugSessionCurrentStep, DependencyCount, NodeCount a StepCount sprístupňujú aktuálnu snímku ladiaceho programu a veľkosti jeho sledovania
TXLSFormulaTracerStepCount hlási počet zaznamenaných krokov vyhodnotenia
TXLSImportCheckAddRule, Annotate, KeepOnlyViolations a Violation konfigurujú a spúšťajú validáciu importu; HeaderRow, FirstRow, LastRow, OnVerifyCell a ViolationCount sprístupňujú jeho medze, spätné volanie a počet výsledkov. Pravidlá sú objekty TlxImportColumnRule, ktorých TlxImportRuleFlags volia kontroly pre jeden stĺpec hárka s základom jedna, a každé TlxImportViolation hlási riadok, stĺpec, problematický text a chybové hlásenie
TXLSExternalLinkUpdateMode = (xluPromptUser, xluNever, xluAlways);

property IXLSWorkbook.SaveExternalLinkValues: Boolean;
property IXLSWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
property TXLSXWorkbook.SaveExternalLinkValues: Boolean;
property TXLSXWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
      
Oba enginy v predvolenom stave ukladajú kešované hodnoty a používajú xluPromptUser; xluNever a xluAlways menia len predvoľbu aktualizácie uloženú v zošite a nikdy neautorizujú ani neinicializujú prístup k externým súborom alebo sieti

Audit výpočtov a tipy zošita

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 spája zlyhania symbolov vzorcov a nezrovnalosti hodnôt v medzipamäti do stabilných štruktúrovaných kategórií so súradnicami hárkov, vzorcami, symbolmi, očakávanými a skutočnými hodnotami a ohraničeným skracovaním, pričom medzipamäte aj sémantika zošita ostanú nezmenené. RecalcAndVerifyEx spustí hĺbkový audit: vyhodnotí každý vzorec raz cez graf závislostí do izolovaného prekryvu výsledkov, takže závislé bunky čítajú tento priebeh namiesto zastaralých medzipamätí, klasifikuje zlyhania vyhodnotenia (nepodporované argumenty, kruhové odkazy, zamietnuté alebo chýbajúce externé odkazy, vynechané údajové tabuľky, zrušenie, interné zlyhania) s výsledkovými kódmi, zaznamená ohraničený zásobník volaní pre každé zlyhanie, rešpektuje rozpočet problémov aj cieľ priebehu/zrušenia a ostáva len na čítanie, pokiaľ ApplyResults nepotvrdí prepočítané hodnoty atomicky po úplne úspešnom priebehu nad nezmenenou štruktúrou zošita
Každý prvok TXLSCalculationAuditReport.Issues je TXLSCalculationAuditIssue; Kind volí jednu z kategórií xlcai*, Expected / Actual nesú porovnávané hodnoty pri nezrovnalostiach medzipamäti, Stack je ohraničený reťazec volaní vyhodnotenia zobrazený ako Sheet!A1 > Sheet!B2 (najvnejší rámec prvý) a ExternalTarget popisuje externý zošit pri problémoch s externými odkazmi. TXLSRecalcAuditOptions.OnProgress je cieľ typu TXLSRecalcAuditProgress, ktorý prijíma priebeh uzlov ACurrent / ATotal a môže nastaviť ACancel, aby zastavil audit na hranici ďalšieho uzla s jediným problémom xlcaiCancelled
RunCalculationAudit je vstupný bod enginu, ktorému sa delegujú obálky auditu na úrovni zošita, a prijíma rovnaký záznam volieb. FormulaIsVolatile hlási, či vzorec vynúti prepočet pri každom priebehu (volania ako NOW, RAND, TODAY, OFFSET, INDIRECT alebo nevyriešiteľný odkaz)
Prekryv auditu je vrstva what-if nad medzipamäťami buniek: AuditOverlayWrite uloží náhradnú hodnotu pre jednu bunku (index hárka od 1, riadok a stĺpec od 0 podľa konvencie kalkulátora), AuditOverlayRead a AuditOverlayHash sa naň pýtajú a AuditOverlayClear vrstvu vyprázdni. Prekryté hodnoty vracajú bežné gettery hodnôt buniek, takže prepočet aj hĺbkový audit ich zaznamenajú bez mutovania buniek hárka; zrušenie prekryvu obnoví uložené hodnoty
Vlastnosti tipov zošita zachovávajú stavy chýba, false, true, zakázané, automatické a manuálne tam, kde ich zdrojový formát podporuje; pri otvorení nikdy nespustia výpočet, obnovenie, prácu so súborovým systémom, sieťou ani databázou

Vzorce tabuliek a stav IME

property TXLSXTable.ColumnCalculatedFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TXLSXTable.ColumnTotalsFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TDataValidation.ImeMode: TXLSDataValidationImeMode;
property TXLSXDataValidation.ImeModeKind: TXLSDataValidationImeMode;
      
Vzorce počítaných stĺpcov a riadkov súčtov zachovávajú nezávislé stavy poľa (chýba, false, true alebo neznáme), vrátane nedotknutých lexikálnych hodnôt zdroja a štruktúrnych úprav stĺpcov; vzorce poľa pri skalárnom rozvíjaní riadkov odmietne namiesto tichej zmeny
Režimy IME používajú explicitné mapovania BIFF a OOXML, zachovávajú neznáme zdrojové hodnoty a odmietajú hodnotu disabled dostupnú len v OOXML, keď je dokument tvorený pre Classic XLS
Nastavenie SaveExternalLinkValues na False vynechá classic záznamy XCT a CRN alebo podstrom sheetDataSet externého zošita XLSX, pričom zachová ciele odkazov, názvy hárkov, externé pomenované názvy, relácie, odkazy vo vzorcoch, neznáme XML a medzipamäť v pamäti; obnovenie vlastnosti na True u toho istého zošita môže túto zachovanú medzipamäť znovu serializovať
Nedotknuté nepodporované zdrojové tokeny ostanú zachované po bajtoch alebo lexikálne, explicitné priradenia vysielajú len legálne hodnoty, nezmenené časti XLSX udržiavajú cestu kopírovania v komprimovanej podobe a konverzia XLS/XLSX prenáša obe politiky; zošity ODS a text nemajú ekvivalentnú deklaráciu a otvárajú sa s predvolenými hodnotami, zatiaľ čo zachované časti odkazov DDE a OLE sa nepovažujú za bunkové medzipamäte externého zošita

Kontrola a odstránenie tabiel úloh doplnkov webu

function IXLSWorkbook.HasWebAddinTaskPanes: Boolean;
function IXLSWorkbook.WebAddinTaskPaneCount: Integer;
function IXLSWorkbook.RemoveWebAddinTaskPanes: Integer;
function TXLSXWorkbook.HasWebAddinTaskPanes: Boolean;
function TXLSXWorkbook.WebAddinTaskPaneCount: Integer;
function TXLSXWorkbook.RemoveWebAddinTaskPanes: Integer;
      
Kontrolné metódy rozpoznávajú len interné relácie od koreňa balíka, ktorých typ presne zodpovedá typu relácie tabiel úloh doplnkov webu; externé relácie, typy odlišujúce sa veľkosťou písmen, relácie hárkov a podobne pomenované časti sa ignorujú
Odstránenie najprv zvaliduje kompletný graf relácií, vrátane normalizovaných cieľov, obmedzenia na koreň balíka, cyklov, chýbajúcich častí a limitov prostriedkov; potom odstráni všetky zodpovedajúce koreňové relácie a len dosiahnuteľné časti nezdieľané inou zachovanou reláciou, spolu s časťami relácií vlastnenými odstránenými zdrojmi
Operácia je atomická a idempotentná, odstránené zdrojové časti sa nemôžu znovu objaviť ukladaním v komprimovanej podobe a typy obsahu sa prestavia zo zvyšného balíka; poškodené grafy pridajú diagnostický kód 1303 a vyvolajú výnimku pred mutáciou, zatiaľ čo Classic XLS a ODS vrátia False, 0 a -1 bez prehľadania balíka

Zásady zobrazovania objektov zošita

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 mapuje tri stavy na svoj záznam zobrazovania objektov zošita a XLSX ich mapuje na workbookPr.showObjects; chýbajúce hodnoty sa predvolene správajú ako xlsodmShowAll, nedotknuté rezervované payloady Classic a nepodporované tokeny XLSX ostanú bez straty a explicitné priradenia vysielajú len kanonické hodnoty
Prehliadač vykreslí režim zástupných symbolov ako ľahké rámčeky nesúce dostupný typ objektu, meno, text a alternatívny text; exportéri v predvolenom stave ponechávajú plné objekty, zatiaľ čo nastavenie ExportObjectPlaceholders vyžiada tú istú nenáročnú politiku bez dekódovania obrazových payloadov alebo stavby scén grafov
xlsodmHideAll zabráni kolekcii kreslenia a rozvinutiu oblastí riadenému objektmi skôr, než sa vykresľovanie začne; konverzia zošitov prenáša všetky tri stavy, ODS zapisuje kompletné kreslenie pre režim zástupných symbolov a pre režim hide-all vynecháva výstup kreslenia a médií a pozadia hárkov ostanú nezávislé

Kalibračné hodnoty a snímky vykresľovania

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;
      
Predvolené hodnoty sú 1, 1, 1, 1, 100 a 96; korekcie šírky a výšky musia byť väčšie ako nula a menšie ako dve, riadkovanie je ohraničené na (0, 4], okraje buniek na [0, 4], škálovanie obrazovky na [100, 500] percent a meracie DPI na [36, 2400]
Zošity Classic XLS a XLSX sprístupňujú tie isté členy RenderCalibration, CaptureRenderCalibration a ResetRenderCalibration; priradenie celého záznamu sa validuje pred mutáciou a každé zachytenie vracia nezávislú snímku hodnôt nemennú podľa konvencie pre jednu operáciu vykreslenia

Geometria vykresľovania a meranie písma

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 vlastní jednu nemennú kalibráciu, generáciu zošita, identitu backendu, meraciu plochu GDI a ohraničenú metrickú medzipamäť lokálnu pre operáciu; MeasureText vracia šírku a výšku v pixeloch, výšku riadku, vzostup, zostup a počet riadkov, zatiaľ čo MaximumDigitWidthPixels, ColumnWidthToPixels, PixelsToColumnWidth, PointsToPixels, PixelsToPoints a UsableCellWidthPixels poskytujú zdieľané geometrické prevody
Identita medzipamäti zahŕňa backend, generáciu zošita, všetky kalibračné hodnoty, názov písma, presnú veľkosť, štýly, znakovú sadu, šírku zalamovania a text; korekcie šírky a výšky sa aplikujú raz pri meraní textu, riadkovanie ovplyvňuje len výšku viacerých riadkov, korekcia okrajov buniek len využiteľnú šírku textu a škálovanie obrazovky len emuláciu maximálnej šírky číslice pre implicitné šírky stĺpcov
Automatické prispôsobenie Classic XLS a XLSX zachytí jednu službu pre každú verejnú operáciu, vrátane merania zlúčených rozsahov a dvojfázového MarkSheet, zatiaľ čo TXLSPaginationModel.Build zachytí jednu službu pre vybraný RenderBackend; vstupné body PDF, SVG, bitmap, ukážky tlače, prehliadača zošitov a HTML si pred výstupom vyberajú vlastný backend, zmena kalibrácie zošita nemôže mutovať existujúcu snímku a výstup nezapisuje rozmery hárku
Priame HTML volania zošitu, hárku a rozsahu zachytávajú čerstvú službu xlsrgbHtml, zatiaľ čo prírastkové TXLSXHtmlExportSession zachytí raz v BeginExport a túto snímku znovu používa pre všetky hárky; obaja exportéri sprístupňujú zachovanú službu prostredníctvom RenderGeometry na diagnostiku kalibrácie a medzipamäti
Vlastnosti IXLSRenderGeometry len na čítanie WorkbookGeneration, CacheCapacity a CacheEntryCount pre diagnostiku hlásia viazanú generáciu a naplnenie medzipamäti a ImplicitWidthMaximumDigitWidthPixels vracia meranie šírky číslice stojacej za emuláciou implicitných šírok stĺpcov
MeasureText naplní záznam TXLSRenderTextMetrics (šírka a výška v pixeloch, výška riadku, vzostup, zostup a počet riadkov) z TXLSRenderFont, ktorého člen Styles je množina príznakov TXLSRenderFontStyle (bold, italic, underline, strikethrough)

Import, generovanie kódu, porovnávanie a monitorovanie

TXLSHTMLImportPreťaženia LoadFromHTML importujú obsah tabuľky HTML zo streamu alebo súboru do hárku, s voliteľnými počiatočnými súradnicami, výberom tabuľky a desatinným oddeľovačom
TXLSCodeGenLanguage (typ TlxCodeGenLanguage: lcgDelphi alebo lcgCppBuilder) volí nárečie zdroja generovaných príkazov, GenerateToList zapisuje vygenerovaný kód zošita do zoznamu reťazcov a TlxCodeGenOptions rozširuje výstup o zlúčenia, šírky stĺpcov alebo číselné formáty (cgoMerges, cgoColumnWidths, cgoNumberFormats; hárky a bunky sa vysielajú vždy)
TXLSXWorkbookCompareLeftName a RightName pomenúvajú vstupy, Compare vykoná porovnanie a Diff sprístupní výsledné položky TlxCompareDiff klasifikované podľa TlxCompareKind
TXLSFileMonitorIntervalMs volí interval dotazovania a SynchronizeEvent volí synchronizované doručovanie spätných volaní; handler OnFileChanged môže monitor deaktivovať alebo zrušiť, prípadne zmeniť FileName a začať sledovať iný súbor
TXLSCSVLoader a TXLSCSVSaverLoader analyzuje text s oddeľovačmi do mriežky Variantov v pamäti — ParseFile a ParseStream naplnia mriežku, CellValue, RowCount a ColCount ju spätne prečítajú — s automaticky rozpoznaným oddeľovačom (ValueSeparator) a kódovaním (TXLSCsvEncoding: systémové ANSI, UTF-16, UTF-8) a s voliteľným povyšovaním typov riadeným cez DetectTypes a položky ColumnTypes pre jednotlivé stĺpce (TXLSCsvColumnType: auto, text, number, date, boolean, skip); SkipRows, AutoTrim, LocaleTolerantNumbers a FieldWidths doladia prácu s pevnou šírkou a locale. TXLSCSVSaver.SaveAs zapíše mriežku späť s uvádzaním do úvodzoviek podľa RFC 4180 a QuoteAllStrings vynúti uvádzanie; TXLSTSVSaver sa od savera odvádza pre výstup oddelený tabulátormi

Pomocníci pre balíky a binárne úložiská

TXLSXOpaquePackageLoadWorkbookXmlMetadata zachytáva stav XML na úrovni zošita, MarkAllPartsClean resetuje príznaky neaktuálnosti a WorkbookExtLstXml spolu s WorkbookRootAttributesXml sprístupňujú zachované fragmenty XML zošita; IsDiscardedPart hlási, či bol názov časti odstránený operáciou vyhodenia, napríklad upratovaním doplnkov webu
TXLSFileStorageLoad, LoadFolder, Write a WriteFolder prenášajú obsah zloženého súboru; Child a Count vyčísľujú podriadené položky, každou je TXLSFileItem — pomenovaný uzol úložiska, ktorého podtrieda TXLSFileStream nesie uložené bajty ako TXLSBlob, pričom DataSize hlási dĺžku užitočnej časti
TXLSBlobAdd pripája ďalší blob, zatiaľ čo AddByte, AddWord, AddLong, AddDouble, AddString a AddWideString pripájajú typované hodnoty; CopyData, CopyMem, FillByte, Write, Clear, Reset a Dump spravujú obsah; Buff a DataLength sprístupňujú úložisko
TXLSBlobListAppend, AppendList, CopyData a Write kombinujú alebo vysielajú položky; Entries a TotalSize sprístupňujú stav zoznamu
TXLSWideStringBuilderAddString pripája text a Length hlási nahromadený počet znakov

Rozšírenia pre kreslenie a prehliadač zošitov

TXLSFillFormatPictureFill konfiguruje výplň tvaru založenú na obrázku, zatiaľ čo FillType volí druh výplne (plná, gradientová, obrázková alebo prednastavená textúra), ktorý zapisovač vysielá
TXLSShapesAddScrollBar a AddSpinner vytvárajú ovládacie prvky formulára — vrátené objekty TXLSScrollBar a TXLSSpinner sprístupňujú geometriu prvku a prepojenú bunku a spinner pridáva krokové limity Min, Max a Inc — zatiaľ čo RegisterScrollBar a RegisterSpinner registrujú prvky načítané zo zošita
TXLSWorkbookViewerCanUndo a CanRedo hlásia dostupnosť histórie úprav, zatiaľ čo ReferencePickMode umožňuje interaktívny výber odkazu na bunku alebo rozsah

Stránkovanie, obrazový výstup a tlač

TXLSGraphicsBackendDrawTiledImage opakovane nanáša pozadie hárka po celej vystrihnutej oblasti stránky
TXLSPaginationModelCompactRangeMode, IncludeDrawings, IncludeGridlines, IncludeCellBorders a PaintPageBackground riadia obsah stránky; RenderDPI, RenderColorMode a RenderSession sprístupňujú výstupné rozlíšenie, zaobchádzanie s farbami a aktívnu reláciu vykresľovania
TXLSCellImageExporterMeasure vypočíta pixelové rozmery pre klasické oblasti alebo oblasti XLSX; ImageFormat, JpegQuality, MaxPixels, MaxBytes, IncludeObjects, IncludeGridlines, IncludeCellBorders, BackgroundColor, TransparentBackground, BeforePaint, AfterPaint a PaginationModel konfigurujú a pozorujú vykreslenie
TXLSPageImageExporterBeforePaint, AfterPaint, MaxPixels, MaxBytes, BackgroundColor a TransparentBackground uplatňujú rovnaké háčiky maľovania a bezpečné limity výstupu aj pri stránkovanom obrazovom exporte
TXLSPrintDocumentPrintWorksheet, PrintWorkbook a PrintAllVisibleSheets pošlú klasický obsah alebo obsah XLSX do tlačiarne VCL; FirstPage, PrintRangeOnly, Collate, Copies, OnBeforeNewPage a OnAfterGeneratePage riadia tlačovú úlohu

Klasické modely grafov a grafické objekty hárkov

TXLSChartSeriesAddTrendline a AddErrorBars vytvárajú typované anotácie série a TrendlineCount s ErrorBarCount hlásia veľkosti ich kolekcií
TXLSChartAxisHasAxcExtFlag otestuje jeden surový príznak AXCEXT bez toho, aby volajúci musel dekódovať bitovú masku
TXLSChartModelAxisGroupCount hlási počet primárnych a sekundárnych skupín osí dekódovaných z grafu
TXLSCustomChartAddAreaData pripojí predpripravenú položku plochy pre opätovné viazanie vzorcov pri ukladaní a ApplyDateAxisModel aplikuje typovaný model dátumovej osi na surové záznamy grafu
TXLSWorksheetAddChartObject ukotví rámec grafu na hárok a pripojí ho k zdieľanému zostavovaču grafov
TXLSXChartLayoutResolverTryResolve vyrieši jeden obdĺžik rozloženia s voliteľnou validáciou veľkosti a ResolveChart vypočíta obdĺžiky grafu, titulku, legendy, vykresľovacej plochy a osí

Typovaný dekódovaný model grafu

Dekódovaný stav grafu je sprístupnený ako obyčajné záznamy a enumy, takže kontrolný kód nikdy nemusí prechádzať surovými záznamami BIFF: TXLSChartInfo nesie dekódované zhrnutie grafu s TXLSChartTypeFamily (cfBar, cfLine, cfPie, cfArea, cfScatter, cfRadar, cfDoughnut, cfSurface, cfBubble), každá séria hlási TXLSChartSeriesType a TXLSChart3DState spolu s TXLSChart3DInfo popisujú trojrozmerné pohľady. TXLSChartAxisType (catCategory, catValue, catSeries, catDate) a TXLSChartLegendPosition klasifikujú osi a legendy, zatiaľ čo model dátumovej osi používa TXLSChartDateUnit (xcduDays, xcduMonths, xcduYears) a TXLSChartDateValues. TXLSCustomChart sprístupňuje dekódovaný model cez TXLSChartInfo; anotácie trendových čiar a chybových pruhov sú typované objekty (TXLSChartTrendline, TXLSChartErrorBars) dosiahnuteľné z každej série

Záznamy na tvorbu grafov

Tvorba hárkov grafov a tvorba cez zostavovač prijímajú obyčajné záznamy namiesto grafov objektov: TXLSChartTrendlineInfo, TXLSChartErrorBarsInfo, TXLSChartDataLabelsInfo a TXLSChartSeriesStyleInfo napĺňajú položky sérií odovzdávané do TXLSWorksheets.AddChartSheet a zdieľaného zostavovača grafov a TXLSPivotChartInfo popisuje rámovanie kontingenčného grafu použité, keď je graf pripojený ku kontingenčnej tabuľke

Prílohy PDF, podpisy a export HTML

IXLSPDFAttachmentSourceWriteTo streamuje bajty prílohy do exportu PDF bez toho, aby exportér musel vlastniť zdrojové údaje
TXLSPDFExportAttachmentDuplicatePolicy volí zaobchádzanie s duplicitnými menami, AttachmentSpoolThreshold riadi spooling príloh a DocumentLanguage zapisuje metadáta jazyka dokumentu
TXLSPDFSignatureTextAlign, TextSize, TextColor, TextBold a TextItalic konfigurujú viditeľný vzhľad podpisu
TXLSHTMLExportViewMode (typ TXLSHtmlViewMode: aktuálne zobrazenie alebo plná tabuľka tabuľkového hárka) volí HTML prezentáciu, zatiaľ čo HotTrackTargets (množina TXLSHtmlHotTrackTarget) a HotTrackColor konfigurujú interaktívne zvýrazňovanie buniek a objektov
TXLSXHtmlExportOptionsViewMode, HotTrackTargets a HotTrackColor poskytujú ekvivalentné ovládacie prvky exportu HTML pre XLSX

Audit výpočtov a ovládacie prvky zošita

TXLSCalculationAuditReportTruncated hlási skrátenie pri dosiahnutí limitu problémov, StackTruncated hlási skrátenie rámcov zásobníka volaní a Issues indexuje zaznamenané výpočtové problémy
TXLSUserFunctionRegistryGeneration sa zmení vždy, keď sa zmení zaregistrovaná sada používateľských funkcií, čo umožní zneplatniť medzipamäť viazania vzorcov
EXLSReportRecoverableDataCategory identifikuje kategóriu obnoviteľných údajov zostavy prezentovanú volajúcemu
IXLSWorkBookManualCalculationThreadCount obmedzuje počet pracovníkov použitých manuálnym výpočtom
TXLSXDataValidationHasUnknownImeMode hlási hodnotu režimu IME, ktorú HotXLS zachoval, ale nerozpoznáva
TXLSXTableColumnCalculatedFormulaArrayRaw a ColumnTotalsFormulaArrayRaw sprístupňujú pôvodný text vzorcov poľa pre stĺpce tabuľky

Kompatibilita rámovania starších PivotCache

TXLSPivotCacheRawBucketIndex identifikuje pozíciu zdrojového substreamu, RawFramingIsLegacy identifikuje staršie rámovanie HotXLS, RawModelIsComplete hlási, či typovaný model pokrýva každý záznam, a CanUpgradeFraming hlási, či je opt-in opätovné vysielanie typovaného modelu bezpečné
TXLSPivotCacheStreamId sprístupňuje identitu streamu klasického cache, SourceDataType sprístupňuje typ klasických zdrojových údajov a RawHasStorageStream hlási, či načítaný cache prišiel z nezávislého úložného streamu PivotCache
TXLSWorkbookUpgradeLegacyPivotCacheFraming opt-in prepisuje len staršie rámovania cache HotXLS, ktorých typovaný model je kompletný; bežné surové prehrávanie cache ostáva predvolené

StreamId sa zapisuje ako záznam SXStreamID ([MS-XLS] §2.4.303) a opakuje sa ako pole idstm hlavičky SXDB, ktoré sa mu musí rovnať; SourceDataType sa zapisuje ako záznam SXVS ([MS-XLS] §2.4.317: $0001 hárok, $0002 externý, $0004 konsolidácia, $0010 scenár) a opakuje sa ako pole vsType hlavičky SXDB, ktoré sa mu musí rovnať. Medzipamäte postavené z oblasti hárka začínajú pri type hárka, zatiaľ čo medzipamäte načítané späť zo súboru si ponechajú hodnotu, ktorú niesol ich substream, takže zapisovač BIFF nikdy nenechá pole SXDB pomenovávať záznam, ktorý nevyslal; RawHasStorageStream označuje medzipamäť načítanú z vlastného úložného streamu, ktorej globálny deskriptor zošita predchádza zaznamenaným záznamom

Integrácia so schránkou a možnosti prilepenia

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;
      
Možnosti prilepenia zdieľajú preťaženia PasteFromClipboard oboch fasád: xlpoValuesOnly ponechá hodnoty z medzipamäte buniek so vzorcami a preskočí formáty a zlúčenia, zatiaľ čo xlpoInsertRows a xlpoInsertCols posunú existujúci obsah skôr, než sa blok umiestni
Pomocníci obalia schránku Windows pre interoperabilitu tabuliek: textoví pomocníci používajú CF_UNICODETEXT (s fallbackom na CF_TEXT cez aktuálnu kódovú stránku ANSI), XLSSetClipboardTextAndHtml zapíše text a formátovaný payload HTML Format v jednej transakcii, XLSBuildHtmlClipboard vypočíta bajtové ofsety CF_HTML pre dokument alebo fragment a XLSEncodeClipboardField uzavrie jedno pole oddelené tabulátorom do úvodzoviek. XLSParseClipboardGrid analyzuje text zo schránky ako riadky oddelené tabulátormi s rovnakým očuchávaním typov, aké TXLSCSVLoader používa pre CSV, a pomocníci Biff8 rozpoznajú a prečítajú natívny stream, ktorý na schránku ukladá samotný Excel, takže prilepené údaje zachovajú hodnoty, vzorce aj formátovanie bez straty textu

Riešenie zobrazovaného textu bunky

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;
      
Jeden zdieľaný resolver rozhodne, čo bunka zobrazí pre daný stav zobrazenia: vzorce namiesto hodnôt, potlačené nuly, skrytý text vzorcov na chránených hárkoch a zdvojnásobený šírkový faktor, ktorý Excel pri zobrazení vzorcov aplikuje. Prehliadač zošitov aj renderery ho volajú cez svoje vstupné body nastavení zobrazenia a aplikácie môžu XLSResolveCellDisplay volať priamo s vlastnými vstupnými záznamami; XLSDefaultCellDisplayOptions vráti kanonické predvolené hodnoty a XLSNormalizeFormulaDisplayText normalizuje reťazec vzorca na zobrazenie

Objekty overovania údajov Classic

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 }
      
Typovaní pomocníci TXLSWorksheet.Add*Validation vytvárajú pravidlá TDVRange v TDVRangeList hárka; každé pravidlo nesie svoj TXLSDataValidationType, medze, vstupné a chybové hlásenia a TXLSDvErrorStyle. TDataValidator vyhodnotí úpravu voči pravidlám a hlási, či je hodnota prijateľná — to je aj kontrola stojaca za vlastnými výzvami overovania Excelu

Skenovanie a riešenie indexovaných farieb

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);
      
Tieto záznamy vystužujú metódy na úrovni zošita ResolveIndexedColor, NearestIndexedColor a ScanIndexedColorUsage: riešenie hlási, z ktorého zo štyroch zdrojov TXLSIndexedColorKind indexovaný token prišiel, spolu so slotom palety, úlohou systémovej farby a normalizovaným ARGB; najbližšia zhoda pridá kvadrát vzdialenosti RGB a príznak presnej zhody a sken použitia oštítkuje každú kategóriu konzumenta, ktorá uzamkne slot palety. Knižnica drží internú medzipamäť TXLSIndexedColorMatcher kľúčovanú generáciou palety — FindNearest z nej odpovedá na dotazy najbližšej farby a UpdateSlot opraví jeden slot palety — takže opakované riešenia ostávajú bez alokácií

Pomocníci pre odkazy 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;
      
Samostatní pomocníci pre tú istú notáciu A1, ktorú prijímajú API zošitov: naformátujú súradnice s nulovým základom na odkaz na bunku A1 a spätne analyzujú odkazy na bunky alebo oblasti, pričom pre poškodený vstup vrátia False namiesto vyvolania výnimky

Pozri tiež