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
TXLSAutofilter | Add, 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 |
TXLSAutofilterItem | Shape 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 |
TXLSDataBarSpec | AxisColor, 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 |
TXLSIconSetSpec | ThresholdEqualsInclude bira uključujuću ili isključujuću usporedbu za svaki prag ikone |
TXLSCfValue | IsIndexedColor 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
TXLSDataTable | Assign, 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 |
TXLSDataTables | Add, 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 |
TXLSPivotCacheField | GroupBaseField 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
TXLSDiagnostic | Code, NativeCode, Message, Severity, ExceptionClass, PartName, RecordId, SheetIndex, SheetName i StreamOffset identificiraju jednu dijagnostiku obrade sintakse, zapisa ili paketa |
TXLSDiagnostics | Add dodaje dijagnostiku, Clear poništava zbirku, a Count uz Items nabraja njezine zapise |
TXLSDiagnosticSeverity i TXLSDiagnosticOperation | TXLSDiagnosticSeverity (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 |
TXLSFormulaDebugSession | CurrentStep, DependencyCount, NodeCount i StepCount izlažu trenutačni snimak uklanjanja pogrešaka i veličine njegova praćenja |
TXLSFormulaTracer | StepCount izvještava o broju zabilježenih koraka izračunavanja |
TXLSImportCheck | AddRule, 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 |
Pravila spremanja vanjskih veza
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
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
TXLSHTMLImport | Preoptereć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 |
TXLSCodeGen | Language (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) |
TXLSXWorkbookCompare | LeftName i RightName označavaju ulaze, Compare izvodi usporedbu, a Diff izlaže dobivene zapise TlxCompareDiff razvrstane po TlxCompareKind |
TXLSFileMonitor | IntervalMs 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 TXLSCSVSaver | Uč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
TXLSXOpaquePackage | LoadWorkbookXmlMetadata 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 |
TXLSFileStorage | Load, 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 |
TXLSBlob | Add 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 |
TXLSBlobList | Append, AppendList, CopyData i Write spajaju ili ispuštaju zapise; Entries i TotalSize izlažu stanje popisa |
TXLSWideStringBuilder | AddString dodaje tekst, a Length izvještava o nakupljenom broju znakova |
Dodaci za crteže i preglednik radnih knjiga
TXLSFillFormat | PictureFill konfigurira ispunjavanje oblika slikom, dok FillType bira vrstu ispune (punu, gradijentnu, slikovnu ili unaprijed određenu teksturu) koju pisac ispušta |
TXLSShapes | AddScrollBar 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 |
TXLSWorkbookViewer | CanUndo i CanRedo izvještavaju o dostupnosti povijesti izmjena, dok ReferencePickMode omogućuje interaktivan odabir reference ćelije ili raspona |
Paginacija, slikovni izlaz i ispis
TXLSGraphicsBackend | DrawTiledImage višekratno iscrtava pozadinu lista preko izrezanog područja stranice |
TXLSPaginationModel | CompactRangeMode, IncludeDrawings, IncludeGridlines, IncludeCellBorders i PaintPageBackground upravljaju sadržajem stranice; RenderDPI, RenderColorMode i RenderSession izlažu razlučivost izlaza, rukovanje bojama i aktivnu sesiju iscrtavanja |
TXLSCellImageExporter | Measure 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 |
TXLSPageImageExporter | BeforePaint, AfterPaint, MaxPixels, MaxBytes, BackgroundColor i TransparentBackground primjenjuju iste udice bojanja i sigurnosna ograničenja izlaza na izvoz slika po stranicama |
TXLSPrintDocument | PrintWorksheet, 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
TXLSChartSeries | AddTrendline i AddErrorBars stvaraju tipizirane napomene niza, dok TrendlineCount i ErrorBarCount izvještavaju o veličinama njihovih zbirki |
TXLSChartAxis | HasAxcExtFlag testira jednu sirovu AXCEXT zastavicu bez da pozivatelji moraju dekodirati bitmasku |
TXLSChartModel | AxisGroupCount izvještava o broju primarnih i sekundarnih grupa osi dekodiranih iz grafikona |
TXLSCustomChart | AddAreaData dodaje unaprijed izgrađenu stavku područja za ponovno vezivanje formula pri spremanju, a ApplyDateAxisModel primjenjuje tipizirani model datumskih osi na sirove zapise grafikona |
TXLSWorksheet | AddChartObject usidruje okvir grafikona na radni list i povezuje ga sa zajedničkim graditeljem grafikona |
TXLSXChartLayoutResolver | TryResolve 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
IXLSPDFAttachmentSource | WriteTo struji bajtove privitka u PDF izvoz, bez da izvoznik mora posjedovati izvorne podatke |
TXLSPDFExport | AttachmentDuplicatePolicy bira rukovanje dupliciranim imenima, AttachmentSpoolThreshold upravlja spooliranjem privitaka, a DocumentLanguage upisuje metapodatke jezika dokumenta |
TXLSPDFSignature | TextAlign, TextSize, TextColor, TextBold i TextItalic konfiguriraju vidljivi izgled potpisa |
TXLSHTMLExport | ViewMode (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 |
TXLSXHtmlExportOptions | ViewMode, HotTrackTargets i HotTrackColor nude ekvivalentne kontrole XLSX HTML izvoza |
Revizija izračuna i kontrole radne knjige
TXLSCalculationAuditReport | Truncated 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 |
TXLSUserFunctionRegistry | Generation mijenja se svaki put kada se promijeni skup registriranih korisničkih funkcija, čime se mogu poništiti predmemorirane veze formula |
EXLSReportRecoverableData | Category identificira kategoriju oporavljivih podataka izvještaja predstavljenu pozivatelju |
IXLSWorkBook | ManualCalculationThreadCount ograničava broj radnika koje koristi ručni izračun |
TXLSXDataValidation | HasUnknownImeMode izvještava o vrijednosti IME načina rada koju je HotXLS zadržao, ali je ne prepoznaje |
TXLSXTable | ColumnCalculatedFormulaArrayRaw i ColumnTotalsFormulaArrayRaw izlažu izvorni tekst formula polja za stupce tablice |
Kompatibilnost naslijeđenog uokvirivanja PivotCache-a
TXLSPivotCache | RawBucketIndex 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 |
TXLSPivotCache | StreamId 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 |
TXLSWorkbook | UpgradeLegacyPivotCacheFraming 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