Dokumentacija HotXLS

Dodatni članovi API-ja biblioteke

Ova stranica upotpunjuje referencu za javne tipove koji podržavaju glavne API-je radnih knjiga, radnih listova, iscrtavanja, uvoza, dijagnostike i preglednika, ali ne zahtijevaju zaseban vodič usmjeren na zadatak

Filtriranje i uvjetno oblikovanje

TXLSAutofilterAdd, AddAutofilterData, AssignFrom, Clear i ParseAutofilterData uređuju ili uvoze definiciju filtra; Defined, FirstRow, FirstCol, LastCol, LastRow i FieldCount izlažu njegove aktivne granice i broj filtriranih stupaca
TXLSAutofilterItemShape izlaže crtež gumba filtra povezan sa stavkom, a učitani kriterij filtra dostupan je kao zapis operanda TXLSAutofilterDOPER — DataType bira oblik operanda, a grbitSgn nosi bitove predznaka i zastavica — za pregled ili roundtrip uređivanje
TXLSDataBarSpecAxisColor, AxisIsThemeColor, AxisThemeColorId, AxisThemeColorTint i ClearAxisThemeColor upravljaju osi; Direction, GradientFill, NegativeBarBorderColorSameAsPositive, NegativeBarColor, NegativeBarColorSameAsPositive i NegativeBorderColor upravljaju izgledom traka; IsIndexedColor, IndexedColorIndex i ClearIndexedColor upravljaju bojom trake kao indeksom u paleti
TXLSIconSetSpecThresholdEqualsInclude bira uključujuću ili isključujuću usporedbu za svaki prag ikone
TXLSCfValueIsIndexedColor i IndexedColorIndex izvještavaju o boji praga pohranjenoj kao naslijeđeni indeks palete, ClearIndexedColor ponovno uklanja taj oblik, a tematske i doslovne boje ostaju dostupne kroz postojeće pristupnike

TXLSCfValue, TXLSDataBarSpec, TXLSColorScaleSpec, TXLSIconSetSpec i TXLSDxfStyle prihvaćaju AttachWriteGuardOwner, povezujući objekt pravila s njegovom radnom knjigom vlasnikom tako da izmjene automatski stječu zaštitu zapisa; vlasnik implementira TXLSCondFormatWriteGuardOwner čija jedina metoda AcquireWriteGuard predaje pravilu zaštitu zapisa radne knjige. TXLSDxfStyle dodaje FontColorIndex s FontColorIsIndexed uz parove FillFgColorIndex / FillFgColorIsIndexed i FillBgColorIndex / FillBgColorIsIndexed za boje pravila kao indekse u paleti, te nadjačave diferencijalnog fonta FontName, FontSize i FontScheme (prazan string, veličina u točkama ili slot tematskog fonta poput major / minor) uz postojeće članove za bold, italic, underline i boju; svaka dodjela stječe write guard i označava pravilo kao dirty za ponovno ispisivanje

TXLSConnections, TXLSDataTables i TXLSQueryTables izlažu OnAcquireWriteGuard (tipovi TXLSConnectionAcquireWriteGuard, TXLSDataTableAcquireWriteGuard i TXLSQueryTableAcquireWriteGuard), udicu kojom njihovi putevi izmjena stječu IXLSWorkbookWriteGuard radne knjige vlasnika prije mutacije te nakon nje pomiču generaciju radne knjige; zaštita bilježi StartGeneration, a Complete označava zapis dovršenim pa se ovisne predmemorije mogu ponovno izgraditi

Zadržane podatkovne veze nose tipizirani opis: TXLSConnectionKind (xlckUnknown, xlckOdbc, xlckDao, xlckFile, xlckWeb, xlckOleDb, xlckText, xlckAdo) razvrstava vezu, TXLSConnectionCredentials (xlccIntegrated, xlccNone, xlccStored, xlccPrompt) bilježi njezin način provjere autentičnosti, a svaka vrijednost parametra veze označena je s TXLSConnectionParameterValueKind (xlcpvNone, xlcpvBoolean, xlcpvDouble, xlcpvInteger, xlcpvString, xlcpvCell). Tablice podataka „what-if“ izvještavaju o vrsti svoje pohranjene definicije kroz TXLSDataTableKind

Tablice podataka „what-if“ i grupiranje u sažetim tablicama

TXLSDataTableAssign, ContainsCell i IsRoot kopiraju i pregledavaju tablicu; Kind, FirstRow, FirstCol, LastCol, LastRow, AlwaysCalculate, ColumnInputCol, ColumnInputRow, ColumnInputDeleted, RowInputCol, RowInputRow i RowInputDeleted izlažu pohranjenu definiciju izračuna
TXLSDataTablesAdd, AddExisting, Delete, Clear, Assign, AdjustForShift i Offset održavaju zbirku; FindByCell i FindRoot pronalaze tablicu koja sadrži danu ćeliju ili u njoj korijeni; Count, Items i OnChange izlažu stanje zbirke
TXLSPivotCacheFieldGroupBaseField i GroupParentField izlažu odnose između grupiranog polja i njegova izvornog ili nadređenog polja

Pragovi skupa ikona mogu se iscrtati ili provjeriti programski: XLSCfIconSetCount izvještava koliko ikona definira TXLSIconSetType, a XLSBuildCfIconGeometry popunjava TXLSCfIconGeometry primitivama (TXLSCfIconPrimitive, vrsta TXLSCfIconPrimitiveKind: cfipPolygon, cfipEllipse, cfipRect, cfipLine) i točkama (TXLSCfIconPoint) koje crtaju jednu ikonu, tako da prilagođeni iscrtavatelji odgovaraju Excelovim ugrađenim oblicima ikona

Dijagnostika, praćenje formula i provjera valjanosti

TXLSDiagnosticCode, NativeCode, Message, Severity, ExceptionClass, PartName, RecordId, SheetIndex, SheetName i StreamOffset identificiraju jednu dijagnostiku obrade sintakse, zapisa ili paketa
TXLSDiagnosticsAdd dodaje dijagnostiku, Clear poništava zbirku, a Count uz Items nabraja njezine zapise
TXLSDiagnosticSeverity i TXLSDiagnosticOperationTXLSDiagnosticSeverity (xlsDiagnosticInfo, xlsDiagnosticWarning, xlsDiagnosticError, xlsDiagnosticFatal) razvrstava jednu dijagnostiku, a TXLSDiagnosticOperation (xlsOperationNone, xlsOperationOpen, xlsOperationSave, xlsOperationCalculate, xlsOperationExport) imenuje fazu koja ju je proizvela; rukovatelji OnDiagnostic oboje čitaju iz dostavljene TXLSDiagnostic
TXLSFormulaDebugSessionCurrentStep, DependencyCount, NodeCount i StepCount izlažu trenutačni snimak uklanjanja pogrešaka i veličine njegova praćenja
TXLSFormulaTracerStepCount izvještava o broju zabilježenih koraka izračunavanja
TXLSImportCheckAddRule, Annotate, KeepOnlyViolations i Violation konfiguriraju i izvode provjeru valjanosti uvoza; HeaderRow, FirstRow, LastRow, OnVerifyCell i ViolationCount izlažu njegove granice, povratni poziv i broj rezultata. Pravila su objekti TlxImportColumnRule čiji TlxImportRuleFlags biraju provjere za jedan stupac radnog lista s indeksom od 1, a svaki TlxImportViolation izvještava o retku, stupcu, problematičnom tekstu i poruci pogreške
TXLSExternalLinkUpdateMode = (xluPromptUser, xluNever, xluAlways);

property IXLSWorkbook.SaveExternalLinkValues: Boolean;
property IXLSWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
property TXLSXWorkbook.SaveExternalLinkValues: Boolean;
property TXLSXWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
      
Oba mehanizma standardno spremaju predmemorirane vrijednosti i upotrebljavaju xluPromptUser; xluNever i xluAlways mijenjaju samo preferenciju ažuriranja pohranjenu u radnoj knjizi i nikada ne ovlašćuju ni pokreću pristup vanjskoj datoteci ili mreži

Revizija izračuna i savjeti radne knjige

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 objedinjuje pogreške simbola formula i nepodudaranja predmemoriranih vrijednosti u stabilne strukturirane kategorije s koordinatama radnog lista, formulama, simbolima, očekivanim i stvarnim vrijednostima te ograničenim skraćivanjem, a da pritom predmemorije i semantika radne knjige ostaju nepromijenjeni. RecalcAndVerifyEx izvodi duboku reviziju: svaku formulu jednom vrednuje kroz graf ovisnosti u izolirani sloj rezultata tako da ovisne ćelije čitaju ovaj prolaz umjesto zastarjelih predmemorija, razvrstava pogreške vrednovanja (nepodržani argumenti, kružne reference, odbijene ili nedostajuće vanjske reference, preskočene tablice podataka, otkazivanje, interne pogreške) s kodovima rezultata, bilježi ograničeni stog poziva po pogrešci, poštuje ograničenje broja nalaza i cilj za napredak/otkazivanje te ostaje samo za čitanje osim ako ApplyResults atomarno ne predaje preračunate vrijednosti nakon potpuno uspješnog prolaza nad nepromijenjenom strukturom radne knjige
Svaki element TXLSCalculationAuditReport.Issues jest TXLSCalculationAuditIssue; Kind bira jednu od kategorija xlcai*, Expected / Actual nose uspoređene vrijednosti za nepodudaranja predmemorije, Stack je ograničeni lanac poziva vrednovanja prikazan kao Sheet!A1 > Sheet!B2 (najvanjski okvir prvi), a ExternalTarget opisuje vanjsku radnu knjigu za probleme vanjskih referenci. TXLSRecalcAuditOptions.OnProgress je cilj tipa TXLSRecalcAuditProgress koji prima napredak po čvorovima ACurrent / ATotal i može postaviti ACancel da zaustavi reviziju na sljedećoj granici čvorova s jednim nalazom xlcaiCancelled
RunCalculationAudit je ulazna točka pogona kojoj delegiraju ovozi revizije na razini radne knjige i prihvaća isti zapis opcija. FormulaIsVolatile izvještava bi li formula prisilila preračunavanje u svakom prolazu (pozivi poput NOW, RAND, TODAY, OFFSET, INDIRECT ili nerazriješivu referencu)
Revizijski overlay sloj je „what-if“ iznad predmemorija ćelija: AuditOverlayWrite pohranjuje zamjensku vrijednost za jednu ćeliju (indeks lista od 1, redak i stupac od 0 u skladu s konvencijom kalkulatora), AuditOverlayRead i AuditOverlayHash ispituju ga, a AuditOverlayClear isprazni sloj. Preklopljene vrijednosti vraćaju standardni getteri vrijednosti ćelija, pa ih preračunavanje i duboka revizija vide bez mutiranja ćelija radnog lista; brisanje overlaya vraća pohranjene vrijednosti
Svojstva savjeta radne knjige zadržavaju stanja missing, false, true, disabled, automatic i manual tamo gdje ih izvorni format podržava; pri otvaranju nikada ne pokreću izračun, osvježavanje, rad s datotečnim sustavom, mrežu ni bazu podataka

Formule tablica i IME stanje

property TXLSXTable.ColumnCalculatedFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TXLSXTable.ColumnTotalsFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TDataValidation.ImeMode: TXLSDataValidationImeMode;
property TXLSXDataValidation.ImeModeKind: TXLSDataValidationImeMode;
      
Formule izračunatih stupaca i ukupnog retka zadržavaju neovisna stanja polja absent, false, true ili unknown, uključujući nedirnute leksičke izvorne vrijednosti i strukturne izmjene stupaca; formule polja skalarno širenje redaka odbija umjesto da se tiho promijene
IME načini rada koriste izričita BIFF i OOXML mapiranja, čuvaju nepoznate izvorne vrijednosti i odbijaju OOXML-only vrijednost disabled kad se autorira za Classic XLS
Postavljanje SaveExternalLinkValues na False izostavlja klasične zapise XCT i CRN ili podstablo sheetDataSet vanjske knjige u XLSX-u, uz zadržavanje ciljeva veza, imena radnih listova, vanjskih definiranih imena, relacija, referenci formula, nepoznatog XML-a i predmemorije u memoriji; vraćanje svojstva na True u istoj radnoj knjizi može tu zadržanu predmemoriju ponovno serializirati
Nedotaknuti nepodržani izvorni tokeni ostaju sačuvani bajt-po-bajt ili leksički, izričite dodjele ispuštaju samo dopuštene vrijednosti, nepromijenjene XLSX komponente zadržavaju put komprimiranog kopiranja, a pretvorba XLS/XLSX prenosi oba pravila; ODS i tekstualne radne knjige nemaju ekvivalentnu deklaraciju i otvaraju se sa standardnim vrijednostima, dok zadržane komponente DDE i OLE veza ne tretiraju se kao predmemorije ćelija vanjskih radnih knjiga

Pregled i uklanjanje okna zadataka web-dodatka

function IXLSWorkbook.HasWebAddinTaskPanes: Boolean;
function IXLSWorkbook.WebAddinTaskPaneCount: Integer;
function IXLSWorkbook.RemoveWebAddinTaskPanes: Integer;
function TXLSXWorkbook.HasWebAddinTaskPanes: Boolean;
function TXLSXWorkbook.WebAddinTaskPaneCount: Integer;
function TXLSXWorkbook.RemoveWebAddinTaskPanes: Integer;
      
Metode pregleda prepoznaju samo unutarnje relacije korijena paketa čiji se tip točno podudara s tipom relacije okna zadataka web-dodatka; vanjske relacije, tipovi s drugačijom upotrebom velikih i malih slova, relacije radnih listova i slično imenovane komponente zanemaruju se
Uklanjanje najprije provjerava valjanost cjelokupnog grafa relacija, uključujući normalizirane ciljeve, ograničenje na korijen paketa, cikluse, nedostajuće komponente i ograničenja resursa; zatim uklanja sve odgovarajuće korijenske relacije i samo dostižne komponente koje druga zadržana relacija ne dijeli, zajedno s komponentama relacija u vlasništvu izbrisanih izvora
Operacija je atomarna i idempotentna, uklonjene izvorne komponente ne mogu se ponovno pojaviti kroz spremanje s komprimiranim kopiranjem, a tipovi sadržaja ponovno se izgrađuju iz preostalog paketa; neispravni grafovi dodaju dijagnostički kôd 1303 i podižu iznimku prije mutacije, dok Classic XLS i ODS vraćaju False, 0 i -1 bez skeniranja paketa

Pravila prikaza objekata radne knjige

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 tri stanja mapira u svoj zapis prikaza objekata radne knjige, a XLSX ih mapira na workbookPr.showObjects; nedostajuće vrijednosti standardno su xlsodmShowAll, nedirnuti rezervirani Classic podaci i nepodržani XLSX tokeni ostaju bez gubitaka, a izričite dodjele ispuštaju samo kanonske vrijednosti
Preglednik placeholder način iscrtava kao lagane okvire koji nose dostupnu vrstu objekta, ime, tekst i alternativni tekst; izvoznici standardno zadržavaju pune objekte, dok postavljanje ExportObjectPlaceholders zahtijeva istu jeftinu politiku bez dekodiranja slikovnih podataka ili izgradnje scena grafikona
xlsodmHideAll sprječava zbirku crteža i širenje raspona vođeno objektima prije početka iscrtavanja; pretvorba radne knjige prenosi sva tri stanja, ODS upisuje potpune crteže za placeholder način i izostavlja izlaz crteža i medija za hide-all način, a pozadine radnih listova ostaju neovisne

Vrijednosti kalibracije iscrtavanja i snimci

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;
      
Standardne vrijednosti su 1, 1, 1, 1, 100 i 96; korekcije širine i visine moraju biti veće od nule i manje od dva, razmak redaka ograničen je na (0, 4], margine ćelija na [0, 4], skaliranje zaslona na [100, 500] posto, a DPI mjerenja na [36, 2400]
Klasične XLS i XLSX radne knjige izlažu iste članove RenderCalibration, CaptureRenderCalibration i ResetRenderCalibration; dodjela cijelog zapisa provjerava valjanost prije mutacije, a svako snimanje vraća neovisnu konvencijom nepromjenjivu snimku vrijednosti za jednu operaciju iscrtavanja

Geometrija iscrtavanja i mjerenje fontova

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 posjeduje jednu nepromjenjivu kalibraciju, generaciju radne knjige, identitet pozadinskog sustava iscrtavanja, površinu za GDI mjerenja i ograničenu predmemoriju mjernih podataka lokalnu za operaciju; MeasureText vraća širinu i visinu u pikselima, visinu retka, uspon i spust te broj redaka, dok MaximumDigitWidthPixels, ColumnWidthToPixels, PixelsToColumnWidth, PointsToPixels, PixelsToPoints i UsableCellWidthPixels pružaju zajedničke geometrijske pretvorbe
Identitet predmemorije obuhvaća pozadinski sustav, generaciju radne knjige, sve vrijednosti kalibracije, naziv fonta, točnu veličinu, stilove, znakovni skup, širinu prelamanja i tekst; korekcije širine i visine primjenjuju se jednom pri mjerenju teksta, razmak redaka utječe samo na visinu višerednog teksta, korekcija margina ćelija samo na upotrebljivu širinu teksta, a skaliranje zaslona samo na emulaciju najveće širine znamenke za neizravne širine stupaca
Classic XLS i XLSX AutoFit snimaju jednu uslugu za svaku javnu operaciju, uključujući mjerenje spojenih raspona i dvofazno MarkSheet, dok TXLSPaginationModel.Build snima jednu uslugu za odabrani RenderBackend; ulazne točke za PDF, SVG, bitmapske slike, pretpregled ispisa, preglednik radnih knjiga i HTML biraju vlastiti pozadinski sustav prije izlaza, promjena kalibracije radne knjige ne može mijenjati postojeći snimak, a izlaz ne upisuje dimenzije radnog lista
Izravni HTML pozivi za radnu knjigu, radni list i raspon snimaju svježu uslugu xlsrgbHtml, dok inkrementalna TXLSXHtmlExportSession snima jednom u BeginExport i ponovno upotrebljava taj snimak za sve radne listove; oba izvoznika izlažu zadržanu uslugu kroz RenderGeometry za dijagnostiku kalibracije i predmemorije
Svojstva IXLSRenderGeometry samo za čitanje — WorkbookGeneration, CacheCapacity i CacheEntryCount — izvještavaju o vezanoj generaciji i popunjenosti predmemorije radi dijagnostike, a ImplicitWidthMaximumDigitWidthPixels vraća mjerenje širine znamenke na kojem počiva emulacija neizravnih širina stupaca
MeasureText popunjava zapis TXLSRenderTextMetrics (širina i visina u pikselima, visina retka, uspon, spust i broj redaka) iz TXLSRenderFont čiji je član Styles skup zastavica TXLSRenderFontStyle (podebljano, kurziv, podcrtano, precrtano)

Uvoz, generiranje koda, usporedba i nadzor

TXLSHTMLImportPreopterećenja LoadFromHTML uvoze tablični HTML sadržaj iz toka ili datoteke u radni list, uz neobavezne početne koordinate, odabir tablice i decimalni separator
TXLSCodeGenLanguage (tip TlxCodeGenLanguage: lcgDelphi ili lcgCppBuilder) bira izvorni dijalekt generiranih naredbi, GenerateToList upisuje generirani kôd radne knjige u popis znakovnih nizova, a TlxCodeGenOptions proširuje izlaz sa spajanjima, širinama stupaca ili formatima brojeva (cgoMerges, cgoColumnWidths, cgoNumberFormats; listovi i ćelije ispuštaju se uvijek)
TXLSXWorkbookCompareLeftName i RightName označavaju ulaze, Compare izvodi usporedbu, a Diff izlaže dobivene zapise TlxCompareDiff razvrstane po TlxCompareKind
TXLSFileMonitorIntervalMs bira interval anketiranja, a SynchronizeEvent sinkroniziranu dostavu povratnog poziva; rukovatelj OnFileChanged može deaktivirati ili uništiti monitor ili promijeniti FileName da počne pratiti drugu datoteku
TXLSCSVLoader i TXLSCSVSaverUčitavač raščlanjuje razdvojeni tekst u mrežu Variants u memoriji — ParseFile i ParseStream pune mrežu, a CellValue, RowCount i ColCount čitaju je natrag — uz automatski otkriveni separator (ValueSeparator) i kodiranje (TXLSCsvEncoding: sistemski ANSI, UTF-16, UTF-8) te neobavezno unapređenje tipova pod kontrolom DetectTypes i po-stupčanih unosa ColumnTypes (TXLSCsvColumnType: auto, text, number, date, boolean, skip); SkipRows, AutoTrim, LocaleTolerantNumbers i FieldWidths profinju rukovanje fiksnom širinom i localeom. TXLSCSVSaver.SaveAs mrežu ponovno zapisuje s navođenjem po RFC 4180, a QuoteAllStrings nameće navođenje; TXLSTSVSaver derivira se iz TXLSCSVSaver za izlaz odvojen tabulatorima

Pomoćne funkcije za pakete i binarno spremište

TXLSXOpaquePackageLoadWorkbookXmlMetadata snima XML stanje na razini radne knjige, MarkAllPartsClean poništava zastavice nečistoće, a WorkbookExtLstXml uz WorkbookRootAttributesXml izlažu zadržane XML fragmente radne knjige; IsDiscardedPart izvještava je li naziv komponente uklonjen operacijom odbacivanja poput čišćenja web-dodatka
TXLSFileStorageLoad, LoadFolder, Write i WriteFolder prenose sadržaj složene datoteke; Child i Count nabrajaju podređene zapise, od kojih je svaki TXLSFileItem — imenovani čvor spremišta čiji podrazred TXLSFileStream nosi pohranjene bajtove kao TXLSBlob uz DataSize koji izvještava o duljini sadržaja
TXLSBlobAdd dodaje drugi blob, dok AddByte, AddWord, AddLong, AddDouble, AddString i AddWideString dodaju tipizirane vrijednosti; CopyData, CopyMem, FillByte, Write, Clear, Reset i Dump upravljaju sadržajem; Buff i DataLength izlažu spremište
TXLSBlobListAppend, AppendList, CopyData i Write spajaju ili ispuštaju zapise; Entries i TotalSize izlažu stanje popisa
TXLSWideStringBuilderAddString dodaje tekst, a Length izvještava o nakupljenom broju znakova

Dodaci za crteže i preglednik radnih knjiga

TXLSFillFormatPictureFill konfigurira ispunjavanje oblika slikom, dok FillType bira vrstu ispune (punu, gradijentnu, slikovnu ili unaprijed određenu teksturu) koju pisac ispušta
TXLSShapesAddScrollBar i AddSpinner stvaraju kontrole obrazaca — vraćeni objekti TXLSScrollBar i TXLSSpinner izlažu geometriju kontrole i povezanu ćeliju, a spinner dodaje ograničenja koraka Min, Max i Inc — dok RegisterScrollBar i RegisterSpinner registriraju kontrole učitane iz radne knjige
TXLSWorkbookViewerCanUndo i CanRedo izvještavaju o dostupnosti povijesti izmjena, dok ReferencePickMode omogućuje interaktivan odabir reference ćelije ili raspona

Paginacija, slikovni izlaz i ispis

TXLSGraphicsBackendDrawTiledImage višekratno iscrtava pozadinu lista preko izrezanog područja stranice
TXLSPaginationModelCompactRangeMode, IncludeDrawings, IncludeGridlines, IncludeCellBorders i PaintPageBackground upravljaju sadržajem stranice; RenderDPI, RenderColorMode i RenderSession izlažu razlučivost izlaza, rukovanje bojama i aktivnu sesiju iscrtavanja
TXLSCellImageExporterMeasure izračunava dimenzije u pikselima za klasične ili XLSX raspone; ImageFormat, JpegQuality, MaxPixels, MaxBytes, IncludeObjects, IncludeGridlines, IncludeCellBorders, BackgroundColor, TransparentBackground, BeforePaint, AfterPaint i PaginationModel konfiguriraju i prate iscrtavanje
TXLSPageImageExporterBeforePaint, AfterPaint, MaxPixels, MaxBytes, BackgroundColor i TransparentBackground primjenjuju iste udice bojanja i sigurnosna ograničenja izlaza na izvoz slika po stranicama
TXLSPrintDocumentPrintWorksheet, PrintWorkbook i PrintAllVisibleSheets šalju klasični ili XLSX sadržaj na VCL pisač; FirstPage, PrintRangeOnly, Collate, Copies, OnBeforeNewPage i OnAfterGeneratePage upravljaju poslom ispisa

Klasični modeli grafikona i objekti grafikona radnog lista

TXLSChartSeriesAddTrendline i AddErrorBars stvaraju tipizirane napomene niza, dok TrendlineCount i ErrorBarCount izvještavaju o veličinama njihovih zbirki
TXLSChartAxisHasAxcExtFlag testira jednu sirovu AXCEXT zastavicu bez da pozivatelji moraju dekodirati bitmasku
TXLSChartModelAxisGroupCount izvještava o broju primarnih i sekundarnih grupa osi dekodiranih iz grafikona
TXLSCustomChartAddAreaData dodaje unaprijed izgrađenu stavku područja za ponovno vezivanje formula pri spremanju, a ApplyDateAxisModel primjenjuje tipizirani model datumskih osi na sirove zapise grafikona
TXLSWorksheetAddChartObject usidruje okvir grafikona na radni list i povezuje ga sa zajedničkim graditeljem grafikona
TXLSXChartLayoutResolverTryResolve razrješava jedan pravokutnik rasporeda uz neobaveznu provjeru veličine, a ResolveChart izračunava pravokutnike grafikona, naslova, legende, područja crtanja i osi

Tipizirani model dekodiranja grafikona

Dekodirano stanje grafikona izlaže se kao obični zapisi i enumeracije tako da kod za pregled nikada ne mora prolaziti kroz sirove BIFF zapise: TXLSChartInfo nosi sažetak dekodiranog grafikona s TXLSChartTypeFamily (cfBar, cfLine, cfPie, cfArea, cfScatter, cfRadar, cfDoughnut, cfSurface, cfBubble), svaki niz izvještava TXLSChartSeriesType, a TXLSChart3DState uz TXLSChart3DInfo opisuju trodimenzionalne poglede. TXLSChartAxisType (catCategory, catValue, catSeries, catDate) i TXLSChartLegendPosition razvrstaju osi i legende, dok model datumskih osi koristi TXLSChartDateUnit (xcduDays, xcduMonths, xcduYears) i TXLSChartDateValues. TXLSCustomChart dekodirani model izlaže kroz TXLSChartInfo; napomene linija trenda i stupaca pogreške tipizirani su objekti (TXLSChartTrendline, TXLSChartErrorBars) dostižni iz svakog niza

Zapisi za izradu grafikona

Izrada listova grafikona i graditelja prihvaća obične zapise umjesto grafova objekata: TXLSChartTrendlineInfo, TXLSChartErrorBarsInfo, TXLSChartDataLabelsInfo i TXLSChartSeriesStyleInfo popunjavaju unose nizova koji se predaju TXLSWorksheets.AddChartSheet i zajedničkom graditelju grafikona, a TXLSPivotChartInfo opisuje uokvirivanje pivot grafikona koje se koristi kada se grafikon veže uz pivot tablicu

PDF privitci, potpisi i HTML izvoz

IXLSPDFAttachmentSourceWriteTo struji bajtove privitka u PDF izvoz, bez da izvoznik mora posjedovati izvorne podatke
TXLSPDFExportAttachmentDuplicatePolicy bira rukovanje dupliciranim imenima, AttachmentSpoolThreshold upravlja spooliranjem privitaka, a DocumentLanguage upisuje metapodatke jezika dokumenta
TXLSPDFSignatureTextAlign, TextSize, TextColor, TextBold i TextItalic konfiguriraju vidljivi izgled potpisa
TXLSHTMLExportViewMode (tip TXLSHtmlViewMode: trenutačni prikaz ili cijela tablica proračunske tablice) bira HTML prezentaciju, dok HotTrackTargets (skup TXLSHtmlHotTrackTarget) i HotTrackColor konfiguriraju interaktivno isticanje ćelija i objekata
TXLSXHtmlExportOptionsViewMode, HotTrackTargets i HotTrackColor nude ekvivalentne kontrole XLSX HTML izvoza

Revizija izračuna i kontrole radne knjige

TXLSCalculationAuditReportTruncated izvještava o skraćivanju zbog ograničenja broja nalaza, StackTruncated o skraćivanju okvira stoga poziva, a Issues indeksira zabilježene nalaze izračuna
TXLSUserFunctionRegistryGeneration mijenja se svaki put kada se promijeni skup registriranih korisničkih funkcija, čime se mogu poništiti predmemorirane veze formula
EXLSReportRecoverableDataCategory identificira kategoriju oporavljivih podataka izvještaja predstavljenu pozivatelju
IXLSWorkBookManualCalculationThreadCount ograničava broj radnika koje koristi ručni izračun
TXLSXDataValidationHasUnknownImeMode izvještava o vrijednosti IME načina rada koju je HotXLS zadržao, ali je ne prepoznaje
TXLSXTableColumnCalculatedFormulaArrayRaw i ColumnTotalsFormulaArrayRaw izlažu izvorni tekst formula polja za stupce tablice

Kompatibilnost naslijeđenog uokvirivanja PivotCache-a

TXLSPivotCacheRawBucketIndex identificira poziciju izvornog podtoka, RawFramingIsLegacy identificira staro HotXLS uokvirivanje, RawModelIsComplete izvještava predstavlja li tipizirani model svaki zapis, a CanUpgradeFraming izvještava je li sigurna neobavezna tipizirana ponovna emisija
TXLSPivotCacheStreamId izlaže identitet toka klasične predmemorije, SourceDataType izlaže tip klasičnih izvornih podataka, a RawHasStorageStream izvještava je li učitana predmemorija došla iz neovisnog toka spremišta PivotCache-a
TXLSWorkbookUpgradeLegacyPivotCacheFraming uključuje prepisivanje samo naslijeđenih HotXLS uokvirivanja predmemorije čiji je tipizirani model potpun; uobičajena sirova reprodukcija predmemorije ostaje standard

StreamId upisuje se kao zapis SXStreamID ([MS-XLS] §2.4.303) i ponavlja kao polje idstm zaglavlja SXDB, kojem mora biti jednako; SourceDataType upisuje se kao zapis SXVS ([MS-XLS] §2.4.317: $0001 radni list, $0002 vanjska, $0004 konsolidacija, $0010 scenarij) i ponavlja kao polje vsType zaglavlja SXDB, kojem mora biti jednako. Predmemorije izgrađene iz raspona radnog lista počinju s tipom radnog lista, dok predmemorije ponovno pročitane iz datoteke zadržavaju vrijednost koju je njihov podtok nosio, tako da BIFF pisac nikada ne ostavlja polje SXDB koje navodi zapis koji nije ispisao; RawHasStorageStream označava predmemoriju učitanu iz vlastitog toka spremišta čiji opis na razini radne knjige prethodi predmemoriranim zapisima

Integracija međuspremnika i opcije lijepljenja

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;
      
Opcije lijepljenja dijele preopterećenja PasteFromClipboard obiju fasada: xlpoValuesOnly zadržava predmemorirane vrijednosti ćelija formula i preskače formate i spajanja, dok xlpoInsertRows i xlpoInsertCols pomiču postojeći sadržaj prije nego što se blok smjesti
Pomoćne funkcije obavijaju Windows međuspremnik za interop proračunskih tablica: tekstovne pomoćne funkcije koriste CF_UNICODETEXT (s povratkom na CF_TEXT kroz trenutačnu ANSI kodnu stranicu), XLSSetClipboardTextAndHtml u jednoj transakciji zapisuje tekst i stilizirani HTML Format payload, XLSBuildHtmlClipboard izračunava CF_HTML bajtovne pomake za dokument ili fragment, a XLSEncodeClipboardField navodi jedno polje odvojeno tabulatorima. XLSParseClipboardGrid raščlanjuje tekst međuspremnika kao retke odvojene tabulatorima s istim prepoznavanjem tipova koje TXLSCSVLoader koristi za CSV, a Biff8 pomoćne funkcije otkrivaju i čitaju izvorni tok koji Excel sam stavlja na međuspremnik tako da lijepljeni podaci zadržavaju vrijednosti, formule i oblikovanje bez gubitka teksta

Razrješavanje teksta prikaza ćelije

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;
      
Jedan zajednički razrješivač odlučuje što ćelija prikazuje za zadano stanje prikaza: formule umjesto vrijednosti, potisnute nule, skriveni tekst formula na zaštićenim listovima i udvostručeni faktor širine koji Excel primjenjuje pri prikazu formula. Preglednik radne knjige i iscrtavatelji zovu ga kroz svoje ulazne točke opcija prikaza, a aplikacije mogu izravno zvati XLSResolveCellDisplay sa svojim zapisima ulaza; XLSDefaultCellDisplayOptions vraća kanonske standardne vrijednosti, a XLSNormalizeFormulaDisplayText normalizira niz formule za prikaz

Objekti klasične provjere podataka

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 }
      
Tipizirani pomoćnici TXLSWorksheet.Add*Validation stvaraju pravila TDVRange u TDVRangeList lista; svako pravilo nosi svoj TXLSDataValidationType, granice, poruke unosa i pogreške te TXLSDvErrorStyle. TDataValidator vrednuje izmjenu prema pravilima i izvještava je li vrijednost prihvatljiva — to je provjera koja stoji i iza Excelovih vlastitih upita provjere podataka

Skeniranje i razrješavanje indeksiranih boja

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);
      
Ovi zapisi stoje iza metoda na razini radne knjige ResolveIndexedColor, NearestIndexedColor i ScanIndexedColorUsage: razrješenje izvještava iz kojeg od četiri izvora TXLSIndexedColorKind potječe indeksirani token, uz njegov utor u paleti, ulogu sistemske boje i normalizirani ARGB, najbliže podudaranje dodaje kvadriranu RGB udaljenost i zastavicu točnog podudaranja, a skeniranje upotrebe označava svaku kategoriju potrošača koja zaključava utor palete. Biblioteka održava internu predmemoriju TXLSIndexedColorMatcher ključiranu generacijom palete — FindNearest iz nje odgovara na upite najbliže boje, a UpdateSlot zakrpa jedan utor palete — tako da ponovljena razrješenja ostaju bez alokacija

Pomoćne funkcije za A1 reference

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;
      
Samostalne pomoćne funkcije za istu A1 notaciju koju prihvaćaju API-ji radne knjige: formatiraju koordinate s indeksima od 0 u A1 referencu ćelije i raščlanjuju reference ćelija ili raspona natrag, vraćajući False za neispravan unos umjesto da podignu izuzetak

Vidi također