További könyvtári API-tagok
Ez az oldal kiegészíti azon nyilvános típusok referenciáját, amelyek támogatják az elsődleges munkafüzet-, munkalap-, megjelenítési, import-, diagnosztikai és megjelenítő-API-kat, de nem igényelnek külön feladatorientált útmutatót
Szűrés és feltételes formázás
TXLSAutofilter | Add, AddAutofilterData, AssignFrom, Clear és ParseAutofilterData szerkeszti vagy importálja a szűrődefiníciót; a Defined, FirstRow, FirstCol, LastCol, LastRow és FieldCount felfedi az aktív határait és a szűrt oszlopok számát |
TXLSAutofilterItem | A Shape felfedi az elemhez társított szűrőgomb-rajzolást, a betöltött szűrőfeltétel pedig TXLSAutofilterDOPER operandusrekordként érhető el — a DataType választja ki az operandus alakját, a grbitSgn pedig az előjelet és a jelzőbiteket hordozza — ellenőrzéshez vagy round-trip szerkesztéshez |
TXLSDataBarSpec | Az AxisColor, AxisIsThemeColor, AxisThemeColorId, AxisThemeColorTint és ClearAxisThemeColor vezérlik a tengelyt; a Direction, GradientFill, NegativeBarBorderColorSameAsPositive, NegativeBarColor, NegativeBarColorSameAsPositive és NegativeBorderColor vezérlik a sáv megjelenését; az IsIndexedColor, IndexedColorIndex és ClearIndexedColor kezelik a palettaindekes sávszínt |
TXLSIconSetSpec | A ThresholdEqualsInclude befogadó vagy kizáró összehasonlítást választ minden ikonküszöbhöz |
TXLSCfValue | Az IsIndexedColor és IndexedColorIndex örökölt palettaindexként tárolt küszöbszínt jelez, a ClearIndexedColor eltávolítja ezt a formát, a téma- vagy literálszínek pedig a meglévő elérésőkön keresztül maradnak elérhetők |
A TXLSCfValue, TXLSDataBarSpec, TXLSColorScaleSpec, TXLSIconSetSpec és TXLSDxfStyle elfogadja az AttachWriteGuardOwner-t, amely a szabályobjektumot a tulajdonos munkafüzethez kapcsolja, így a szerkesztések automatikusan írásőrzőt szereznek; a tulajdonos megvalósítja a TXLSCondFormatWriteGuardOwner felületet, amelynek egyetlen AcquireWriteGuard metódusa a munkafüzet írásőrzőjét adja át a szabálynak. A TXLSDxfStyle hozzáadja a FontColorIndex-et a FontColorIsIndexed-del, valamint a FillFgColorIndex / FillFgColorIsIndexed és FillBgColorIndex / FillBgColorIsIndexed párokat a palettaindekes szabályszínekhez, továbbá a differenciális font felülbírálásokat: FontName, FontSize és FontScheme (üres karakterlánc, pontban megadott méret vagy major / minor jellegű témafont-slót) a meglévő félkövér, dőlt, aláhúzott és szín tagok mellett; minden értékadás megszerzi az írásőrzőt, és megjelöli a szabályt dirty állapotban az újrakibocsátáshoz
A TXLSConnections, TXLSDataTables és TXLSQueryTables felfedi az OnAcquireWriteGuard-ot (típus: TXLSConnectionAcquireWriteGuard, TXLSDataTableAcquireWriteGuard és TXLSQueryTableAcquireWriteGuard), azt a horogot, amelyen keresztül szerkesztési útvonalaik a mutáció előtt megszerzik a tulajdonos munkafüzet IXLSWorkbookWriteGuard objektumát, majd előremozdítják a munkafüzet-generációt; az őrző rögzíti a StartGeneration-t, a Complete pedig befejezettnek jelöli az írást, így újraépülhetnek a függő gyorsítótárak
A megőrzött adatkapcsolatok típusos leírást hordoznak: a TXLSConnectionKind (xlckUnknown, xlckOdbc, xlckDao, xlckFile, xlckWeb, xlckOleDb, xlckText, xlckAdo) osztályozza a kapcsolatot, a TXLSConnectionCredentials (xlccIntegrated, xlccNone, xlccStored, xlccPrompt) rögzíti a hitelesítési módját, minden kapcsolatparaméter-érték pedig TXLSConnectionParameterValueKind címkét kap (xlcpvNone, xlcpvBoolean, xlcpvDouble, xlcpvInteger, xlcpvString, xlcpvCell). A what-if adattáblák a tárolt definíciójuk fajtáját a TXLSDataTableKind segítségével jelentik
What-if adattáblák és kimutatás-csoportosítás
TXLSDataTable | Az Assign, ContainsCell és IsRoot másolja és megvizsgálja a táblát; a Kind, FirstRow, FirstCol, LastCol, LastRow, AlwaysCalculate, ColumnInputCol, ColumnInputRow, ColumnInputDeleted, RowInputCol, RowInputRow és RowInputDeleted felfedi a tárolt számítási definíciót |
TXLSDataTables | Az Add, AddExisting, Delete, Clear, Assign, AdjustForShift és Offset karbantartja a gyűjteményt; a FindByCell és FindRoot megkeresi az adott cellát tartalmazó vagy abból gyökerező táblát; a Count, Items és OnChange felfedi a gyűjtemény állapotát |
TXLSPivotCacheField | A GroupBaseField és GroupParentField felfedi a csoportosított mező és annak forrás- vagy szülőmezeje közötti kapcsolatokat |
Az ikonkészlet küszöbértékei programozottan is kirajzolhatók vagy érvényesíthetők: az XLSCfIconSetCount jelenti, hogy egy TXLSIconSetType hány ikont definiál, az XLSBuildCfIconGeometry pedig egy TXLSCfIconGeometry struktúrát tölt meg az egy ikont megrajzoló primitívekkel (TXLSCfIconPrimitive, fajta: TXLSCfIconPrimitiveKind: cfipPolygon, cfipEllipse, cfipRect, cfipLine) és pontokkal (TXLSCfIconPoint), így az egyéni rendererek illeszkednek az Excel beépített ikonalakjaihoz
Diagnosztika, képlet-nyomkövetés és érvényesítés
TXLSDiagnostic | A Code, NativeCode, Message, Severity, ExceptionClass, PartName, RecordId, SheetIndex, SheetName és StreamOffset egy elemző-, író- vagy csomagdiagnosztikát azonosítanak |
TXLSDiagnostics | Az Add hozzáfűz egy diagnosztikát, a Clear visszaállítja a gyűjteményt, a Count és Items pedig felsorolja a bejegyzéseit |
TXLSDiagnosticSeverity és TXLSDiagnosticOperation | A TXLSDiagnosticSeverity (xlsDiagnosticInfo, xlsDiagnosticWarning, xlsDiagnosticError, xlsDiagnosticFatal) egy diagnosztikát osztályoz, a TXLSDiagnosticOperation (xlsOperationNone, xlsOperationOpen, xlsOperationSave, xlsOperationCalculate, xlsOperationExport) pedig megnevezi azt a fázist, amely előállította; az OnDiagnostic kezelők mindkettőt a kézbesített TXLSDiagnostic-ból olvassák ki |
TXLSFormulaDebugSession | A CurrentStep, DependencyCount, NodeCount és StepCount felfedi az aktuális hibakereső pillanatképet és a nyomkövetés méreteit |
TXLSFormulaTracer | A StepCount jelenti a rögzített kiértékelési lépések számát |
TXLSImportCheck | Az AddRule, Annotate, KeepOnlyViolations és Violation konfigurálják és futtatják az import érvényesítését; a HeaderRow, FirstRow, LastRow, OnVerifyCell és ViolationCount felfedik a határait, visszahívását és az eredmények számát. A szabályok TlxImportColumnRule objektumok, amelyeknek TlxImportRuleFlags jelzői választják ki az ellenőrzéseket egy 1 alapú munkalaposzlophoz, minden TlxImportViolation pedig jelenti a sort, az oszlopot, a sértő szöveget és a hibaüzenetet |
Külső hivatkozások mentési szabályzatai
TXLSExternalLinkUpdateMode = (xluPromptUser, xluNever, xluAlways);
property IXLSWorkbook.SaveExternalLinkValues: Boolean;
property IXLSWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
property TXLSXWorkbook.SaveExternalLinkValues: Boolean;
property TXLSXWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
Mindkét engine alapértelmezetten menti a gyorsítótárazott értékeket, és a xluPromptUser-t használja; a xluNever és xluAlways csak a munkafüzetben tárolt frissítési előbeállítást változtatja meg, és soha nem hatalmaz fel, illetve nem indít külső fájl- vagy hálózati hozzáférést
Számítási audit és munkafüzet-tippek
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;
A RecalcAndVerify a képletszimbólum-hibákat és a gyorsítótárazott értékek eltéréseit stabil, strukturált kategóriákba rendez munkalap-koordinátákkal, képletekkel, szimbólumokkal, várt és tényleges értékekkel, valamint korlátos csonkolással, miközben a gyorsítótárakat és a munkafüzet szemantikáját érintetlenül hagyja. A RecalcAndVerifyEx a mély auditot futtatja: minden képletet egyszer kiértékel a függőségi gráfon keresztül egy izolált eredmény-overlay-be, így a függő cellák ezt a futást olvassák az elavult gyorsítótárak helyett; eredménykódokkal osztályozza a kiértékelési hibákat (nem támogatott argumentumok, körkörös hivatkozások, tiltott vagy hiányzó külső hivatkozások, kihagyott adattáblák, megszakítás, belső hibák), hibánként korlátos hívási veremet rögzít, tiszteletben tartja a problémaköltségvetést és a haladási/megszakítási visszahívást, és csak olvasható marad, kivéve ha az ApplyResults a teljesen sikeres futás után atomikusan rögzíti az újraszámolt értékeket egy változatlan munkafüzet-struktúrán
A TXLSCalculationAuditReport.Issues minden eleme egy TXLSCalculationAuditIssue; a Kind az xlcai* kategóriák egyikét választja ki, az Expected / Actual a gyorsítótár-eltérések összehasonlított értékeit hordozza, a Stack a korlátos kiértékelési hívólánc, amely Sheet!A1 > Sheet!B2 alakban jelenik meg (a legkülső kerettel kezdve), az ExternalTarget pedig a külső munkafüzetet írja le a külső hivatkozási problémáknál. A TXLSRecalcAuditOptions.OnProgress egy TXLSRecalcAuditProgress fogadó, amely ACurrent / ATotal csomóphaladást kap, és az ACancel beállításával a következő csomóphatárnál leállíthatja az auditot egyetlen xlcaiCancelled problémával
A RunCalculationAudit az az engine-belépési pont, amelyre a munkafüzet-szintű audit burkolók delegálnak, és ugyanazt az options rekordot fogadja. A FormulaIsVolatile jelenti, hogy egy képlet minden futásnál kényszerít-e újraszámítást (például NOW, RAND, TODAY, OFFSET, INDIRECT hívások vagy feloldhatatlan hivatkozás esetén)
Az audit-overlay a cellagyorsítótárak fölötti what-if réteg: az AuditOverlayWrite egy cella pótoló értékét tárolja (1 alapú munkalapindex, a kalkulátor konvenciójának megfelelő 0 alapú sor és oszlop), az AuditOverlayRead és az AuditOverlayHash lekérdezi, az AuditOverlayClear pedig kiüríti a réteget. A ráírt értékeket a normál cellaérték-lekérdezők adják vissza, így az újraszámítás és a mély audit úgy figyeli őket, hogy közben nem módosítja a munkalap celláit; az overlay törlése visszaállítja a tárolt értékeket
A munkafüzet-tipp tulajdonságok megtartják a hiányzó, false, true, letiltott, automatikus és kézi állapotokat ott, ahol a forrásformátum támogatja őket; megnyitáskor soha nem indítanak számítást, frissítést, fájlrendszer-, hálózati vagy adatbázis-munkát
property TXLSXTable.ColumnCalculatedFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TXLSXTable.ColumnTotalsFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TDataValidation.ImeMode: TXLSDataValidationImeMode;
property TXLSXDataValidation.ImeModeKind: TXLSDataValidationImeMode;
A számított oszlopok és a végösszegsorok képletei egymástól független hiányzó, false, true vagy ismeretlen tömbállapotokat tartanak, az érintetlen forráslexikális értékekkel és az oszlopstruktúra szerkesztéseivel együtt; a tömbképleteket a skaláris sorkiterjesztés elutasítja, ahelyett hogy csendben megváltoztatná őket
Az IME módok explicit BIFF és OOXML leképezéseket használnak, megőrzik az ismeretlen forrásértékeket, és elutasítják a csak OOXML-ben létező disabled értéket, ha Classic XLS-hez szerkesztik
A SaveExternalLinkValues False-ra állítása kihagyja a classic XCT és CRN rekordokat vagy az XLSX külső munkafüzet sheetDataSet alstruktúráját, miközben megőrzi a hivatkozási célokat, a munkalapneveket, a külső definiált neveket, a kapcsolatokat, a képlethivatkozásokat, az ismeretlen XML-t és a memóriabeli gyorsítótárat; a tulajdonság True-ra állítása ugyanazon a munkafüzeten újra szerializálhatja ezt a megtartott gyorsítótárat
Az érintetlen, nem támogatott forrástokenek bájtról bájtra vagy lexikálisan megőrződnek, az explicit hozzárendelések csak legális értékeket bocsátanak ki, a változatlan XLSX részek megtartják a tömörített másolási útvonalat, és az XLS/XLSX konverzió mindkét szabályzatot átviszi; az ODS és szöveges munkafüzeteknek nincs egyenértékű deklarációjuk, és az alapértelmezésekkel nyílnak meg, míg a megőrzött DDE és OLE hivatkozásrészeket nem kezelik külső munkafüzet cellagyorsítótáraként
Webes bővítmény feladatpanelek vizsgálata és eltávolítása
function IXLSWorkbook.HasWebAddinTaskPanes: Boolean;
function IXLSWorkbook.WebAddinTaskPaneCount: Integer;
function IXLSWorkbook.RemoveWebAddinTaskPanes: Integer;
function TXLSXWorkbook.HasWebAddinTaskPanes: Boolean;
function TXLSXWorkbook.WebAddinTaskPaneCount: Integer;
function TXLSXWorkbook.RemoveWebAddinTaskPanes: Integer;
A vizsgálati metódusok csak olyan belső, csomaggyökér-relációkat ismernek fel, amelyek típusa pontosan egyezik a webes bővítmény feladatpanel-relációtípusával; a külső relációkat, a nagybetűzésben eltérő típusokat, a munkalap-relációkat és a hasonlóan nevezett részeket figyelmen kívül hagyják
Az eltávolítás először érvényesíti a teljes relációgráfot, beleértve a normalizált célokat, a csomaggyökérre korlátozást, a ciklusokat, a hiányzó részeket és az erőforráskorlátokat; majd eltávolítja az összes egyező gyökérrelációt, és csak a másik megtartott reláció által nem megosztott elérhető részeket, együtt a törölt források által birtokolt reláció-részekkel
A művelet atomikus és idempotens, az eltávolított forrásrészek nem jelenhetnek meg újra tömörített másolati mentéssel, a tartalomtípusok pedig a megmaradt csomagból épülnek újra; a hibás gráfok hozzáadják a 1303 diagnosztikai kódot, és mutáció előtt kivételt váltanak ki, míg a Classic XLS és az ODS False, 0 és -1 értéket ad vissza csomagátvizsgálás nélkül
Munkafüzet objektummegjelenítési szabályzat
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;
A Classic XLS a három állapotot a munkafüzet objektummegjelenítési rekordjára képezi le, az XLSX pedig a workbookPr.showObjects mezőre; a hiányzó értékek alapértelmezése xlsodmShowAll, az érintetlen, fenntartott Classic hasznos adatok és a nem támogatott XLSX tokenek veszteségmentesek maradnak, az explicit hozzárendelések pedig csak kanonikus értékeket bocsátanak ki
A megjelenítő a placeholder módot könnyűsúlyú dobozként rajzolja ki, amely hordozza az elérhető objektumtípust, nevet, szöveget és alternatív szöveget; az exportőrök alapértelmezetten megtartják a teljes objektumokat, míg az ExportObjectPlaceholders beállítása ugyanezt a költséghatékony szabályzatot kéri képhasznos-adat dekódolás vagy diagramjelenetek felépítése nélkül
A xlsodmHideAll megakadályozza a rajzgyűjtemény és az objektumvezérelt tartománykiterjesztést, mielőtt a megjelenítés elindulna; a munkafüzet-konverzió mindhárom állapotot átviszi, az ODS a placeholder módhoz teljes rajzokat ír, a hide-all módhoz pedig kihagyja a rajz- és médiumkimenetet, a munkalap-hátterek pedig függetlenek maradnak
Megjelenítési kalibrációs értékek és pillanatképek
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;
Az alapértelmezett értékek 1, 1, 1, 1, 100 és 96; a szélesség- és magasságkorrekcióknak nullánál nagyobbnak és kettőnél kisebbnek kell lenniük, a sorköz határa (0, 4], a cellamargóé [0, 4], a képernyőskála határa [100, 500] százalék, a mérési DPI-é pedig [36, 2400]
A Classic XLS és XLSX munkafüzetek ugyanazokat a RenderCalibration, CaptureRenderCalibration és ResetRenderCalibration tagokat fedik fel; a teljes rekord hozzárendelése mutáció előtt érvényesít, és minden rögzítés konvenció szerint változtathatatlan, egyetlen megjelenítési művelethez tartozó független értékpillanatképet ad vissza
Megjelenítési geometria és betűtípusmérés
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;
Az IXLSRenderGeometry egyetlen változtathatatlan kalibrációt, munkafüzet-generációt, backend-identitást, GDI mérőfelületet és korlátos, művelethelyi metrikus gyorsítótárat birtokol; a MeasureText pixelben adja vissza a szélességet, magasságot, sormagasságot, felső és alsó kiterjedést és a sorok számát, míg a MaximumDigitWidthPixels, ColumnWidthToPixels, PixelsToColumnWidth, PointsToPixels, PixelsToPoints és UsableCellWidthPixels a megosztott geometriai konverziókat biztosítják
A gyorsítótár-identitás magában foglalja a backendet, a munkafüzet-generációt, az összes kalibrációs értéket, a betűtípus nevét, a pontos méretet, a stílusokat, a karakterkészletet, a tördelési szélességet és a szöveget; a szélesség- és magasságkorrekció egyszer alkalmazódik a szöveg mérésekor, a sorköz csak a többsoros magasságot befolyásolja, a cellamargó-korrekció csak a használható szövegszélességet, a képernyőskála pedig csak az implicit oszlopszélességekhez tartozó maximális számjegyszélesség-emulációt
A Classic XLS és XLSX automatikus illesztése (AutoFit) nyilvános műveletenként egy szolgáltatást rögzít, beleértve az egyesített tartományok és a kétfázisú MarkSheet mérést, míg a TXLSPaginationModel.Build egy szolgáltatást rögzít a kiválasztott RenderBackend-hez; a PDF, SVG, bitmap, nyomtatási előnézet, munkafüzet-megjelenítő és HTML belépési pontok a kimenet előtt a saját backendüket választják, a munkafüzet kalibrációjának módosítása nem mutálhatja a meglévő pillanatképet, és a kimenet nem írja ki a munkalap méreteit
A közvetlen HTML munkafüzet-, munkalap- és tartományhívások friss xlsrgbHtml szolgáltatást rögzítenek, míg a növekményes TXLSXHtmlExportSession egyszer rögzít a BeginExport-ban, és ezt a pillanatképet használja újra minden munkalaphoz; mindkét exportőr a megtartott szolgáltatást a RenderGeometry segítségével fedi fel a kalibráció és a gyorsítótár diagnosztikájához
A csak olvasható IXLSRenderGeometry tulajdonságok, a WorkbookGeneration, CacheCapacity és CacheEntryCount diagnosztikai célból jelentik a kötött generációt és a gyorsítótár telítettségét, az ImplicitWidthMaximumDigitWidthPixels pedig az implicit oszlopszélesség-emuláció mögötti számjegyszélesség-mérést adja vissza
A MeasureText egy TXLSRenderTextMetrics rekordot tölt meg (pixelszélesség, magasság, sormagasság, felső és alsó kiterjedés, sorok száma) egy TXLSRenderFont alapján, amelynek Styles tagja TXLSRenderFontStyle jelzők halmaza (félkövér, dőlt, aláhúzott, áthúzott)
Import, kódgenerálás, összehasonlítás és monitorozás
TXLSHTMLImport | A LoadFromHTML túlterhelések HTML táblatartalmat importálnak streamből vagy fájlból egy munkalapba, opcionális kezdőkoordinátákkal, táblaválasztással és tizedes elválasztóval |
TXLSCodeGen | A Language (típus: TlxCodeGenLanguage: lcgDelphi vagy lcgCppBuilder) választja ki a generált utasítások forrásdialektusát, a GenerateToList a generált munkafüzetkódot karakterlánclistába írja, a TlxCodeGenOptions pedig összevonásokkal, oszlopszélességekkel vagy számformátumokkal bővíti a kimenetet (cgoMerges, cgoColumnWidths, cgoNumberFormats; munkalapok és cellák mindig kerülnek kiírásra) |
TXLSXWorkbookCompare | A LeftName és RightName felcímkézi a bemeneteket, a Compare elvégzi az összehasonlítást, a Diff pedig felfedi az eredményül kapott TlxCompareDiff bejegyzéseket azok TlxCompareKind szerinti besorolásával |
TXLSFileMonitor | Az IntervalMs kiválasztja a lekérdezési időközt, a SynchronizeEvent pedig a szinkronizált visszahívás-kézbesítést; egy OnFileChanged kezelő deaktiválhatja vagy megsemmisítheti a monitort, illetve megváltoztathatja a FileName-ot, hogy másik fájlt figyeljen |
TXLSCSVLoader és TXLSCSVSaver | A loader elválasztójeles szöveget tölt be egy memóriabeli Variant rácsba — a ParseFile és a ParseStream tölti a rácsot, a CellValue, RowCount és ColCount olvassa vissza — automatikusan felismert elválasztóval (ValueSeparator) és kódolással (TXLSCsvEncoding: rendszer ANSI, UTF-16, UTF-8), az opcionális típusemelést pedig a DetectTypes és az oszloponkénti ColumnTypes bejegyzések vezérlik (TXLSCsvColumnType: auto, szöveg, szám, dátum, logikai, kihagyás); a SkipRows, AutoTrim, LocaleTolerantNumbers és FieldWidths finomítja a fix szélességű és a területi beállítások kezelését. A TXLSCSVSaver.SaveAs RFC 4180 idézéssel írja vissza a rácsot, a QuoteAllStrings kényszeríti az idézést; a TXLSTSVSaver a saverből származik a tabulátorral elválasztott kimenethez |
Csomag- és bináristároló-segédek
TXLSXOpaquePackage | A LoadWorkbookXmlMetadata rögzíti a munkafüzet szintű XML-állapotot, a MarkAllPartsClean visszaállítja a módosultsági jelzőket, a WorkbookExtLstXml és WorkbookRootAttributesXml pedig felfedi a megőrzött munkafüzet-XML töredékeket; az IsDiscardedPart jelzi, hogy egy résznevet eltávolított-e egy elvetési művelet, például a webes bővítmények takarítása |
TXLSFileStorage | A Load, LoadFolder, Write és WriteFolder összetett fájltartalmat visz át; a Child és Count felsorolja a gyermekbejegyzéseket, amelyek mindegyike egy TXLSFileItem — egy elnevezett tárolócsomópont, amelynek TXLSFileStream alosztálya a tárolt bájtokat TXLSBlob-ként hordozza, a DataSize pedig jelenti a hasznos adat hosszát |
TXLSBlob | Az Add hozzáfűz egy másik blobot, míg a AddByte, AddWord, AddLong, AddDouble, AddString és AddWideString típusos értékeket fűz hozzá; a CopyData, CopyMem, FillByte, Write, Clear, Reset és Dump kezeli a tartalmat; a Buff és DataLength felfedi a tárolót |
TXLSBlobList | Az Append, AppendList, CopyData és Write kombinálják vagy kibocsátják a bejegyzéseket; az Entries és TotalSize felfedi a lista állapotát |
TXLSWideStringBuilder | Az AddString szöveget fűz hozzá, a Length pedig jelenti a felhalmozott karakterszámot |
Rajzolási és munkafüzet-megjelenítő bővítmények
TXLSFillFormat | A PictureFill képalapú alakzatkitöltést konfigurál, míg a FillType kiválasztja azt a kitöltéstípust (egyszínű, gradiens, kép vagy előre beállított textúra), amelyet az író kibocsát |
TXLSShapes | Az AddScrollBar és az AddSpinner űrlapvezérlőket hoznak létre — a visszaadott TXLSScrollBar és TXLSSpinner objektumok felfedik a vezérlő geometriáját és a kapcsolt cellát, a spinner pedig Min, Max és Inc lépés korlátokat ad hozzá — míg a RegisterScrollBar és a RegisterSpinner regisztrálja a munkafüzetből betöltött vezérlőket |
TXLSWorkbookViewer | A CanUndo és CanRedo jelenti a szerkesztési előzmények elérhetőségét, míg a ReferencePickMode interaktív cella- vagy tartományhivatkozás-választást tesz lehetővé |
Tördelés, képkimenet és nyomtatás
TXLSGraphicsBackend | A DrawTiledImage ismételten, csempézve rajzolja ki a munkalap hátterét a levágott oldalrégióra |
TXLSPaginationModel | A CompactRangeMode, IncludeDrawings, IncludeGridlines, IncludeCellBorders és PaintPageBackground vezérlik az oldal tartalmát; a RenderDPI, RenderColorMode és RenderSession felfedi a kimeneti felbontást, a színkezelést és az aktív render munkamenetet |
TXLSCellImageExporter | A Measure pixelméreteket számol classic vagy XLSX tartományokhoz; az ImageFormat, JpegQuality, MaxPixels, MaxBytes, IncludeObjects, IncludeGridlines, IncludeCellBorders, BackgroundColor, TransparentBackground, BeforePaint, AfterPaint és PaginationModel konfigurálja és figyeli a renderelést |
TXLSPageImageExporter | A BeforePaint, AfterPaint, MaxPixels, MaxBytes, BackgroundColor és TransparentBackground ugyanazokat a rajzolási horgokat és kimeneti biztonsági korlátokat alkalmazza a tördelt képxportálásnál |
TXLSPrintDocument | A PrintWorksheet, PrintWorkbook és PrintAllVisibleSheets classic vagy XLSX tartalmat küld a VCL nyomtatónak; a FirstPage, PrintRangeOnly, Collate, Copies, OnBeforeNewPage és OnAfterGeneratePage vezérli a nyomtatási feladatot |
Classic diagrammodellek és munkalap diagramobjektumok
TXLSChartSeries | Az AddTrendline és az AddErrorBars típusos adatsor-megjegyzéseket hoznak létre, a TrendlineCount és az ErrorBarCount pedig jelenti a gyűjteményeik méretét |
TXLSChartAxis | A HasAxcExtFlag egy nyers AXCEXT jelzőt teszt anélkül, hogy a hívónak dekódolnia kellene a bitmaszkot |
TXLSChartModel | Az AxisGroupCount jelenti a diagramból dekódolt elsődleges és másodlagos tengelycsoportok számát |
TXLSCustomChart | Az AddAreaData előre elkészített területelemet fűz hozzá a mentéskori képlet-újrakötéshez, az ApplyDateAxisModel pedig típusos dátumtengely-modellt alkalmaz a nyers diagramrekordokra |
TXLSWorksheet | Az AddChartObject diagramkeretet horgonyoz egy munkalapra, és összeköti azt a megosztott diagramépítővel |
TXLSXChartLayoutResolver | A TryResolve egy elrendezési téglalapot old fel opcionális méretérvényesítéssel, a ResolveChart pedig kiszámítja a diagram, a cím, a jelmagyarázat, az ábraterület és a tengelyek téglalapjait |
Típusos diagram-dekódolási modell
A dekódolt diagramállapot egyszerű rekordokként és enumokként érhető el, így a vizsgálókódnak soha nem kell nyers BIFF rekordokon végigmennie: a TXLSChartInfo hordozza a dekódolt diagram összefoglalóját a TXLSChartTypeFamily-vel (cfBar, cfLine, cfPie, cfArea, cfScatter, cfRadar, cfDoughnut, cfSurface, cfBubble), minden adatsor TXLSChartSeriesType-ot jelent, a TXLSChart3DState és a TXLSChart3DInfo pedig a háromdimenziós nézeteket írja le. A TXLSChartAxisType (catCategory, catValue, catSeries, catDate) és a TXLSChartLegendPosition osztályozza a tengelyeket és a jelmagyarázatokat, a dátumtengely-modell pedig a TXLSChartDateUnit-ot (xcduDays, xcduMonths, xcduYears) és a TXLSChartDateValues-t használja. A TXLSCustomChart a dekódolt modellt a TXLSChartInfo segítségével teszi elérhetővé; a trendvonal- és hibasáv-megjegyzések típusos objektumok (TXLSChartTrendline, TXLSChartErrorBars), amelyek minden adatsorról elérhetők
Diagramkészítési rekordok
A diagramlap- és az építőalapú diagramkészítés egyszerű rekordokat fogad objektumgráfok helyett: a TXLSChartTrendlineInfo, TXLSChartErrorBarsInfo, TXLSChartDataLabelsInfo és TXLSChartSeriesStyleInfo tölti ki azokat az adatsor-bejegyzéseket, amelyeket a TXLSWorksheets.AddChartSheet és a megosztott diagramépítő kap, a TXLSPivotChartInfo pedig azt a kimutatásdiagram-keretet írja le, amelyet akkor használ a rendszer, ha a diagramot kimutatástáblához csatolják
PDF-mellékletek, aláírások és HTML export
IXLSPDFAttachmentSource | A WriteTo a melléklet bájtjait streameli a PDF exportba anélkül, hogy az exportőrnek birtokolnia kellene a forrásadatokat |
TXLSPDFExport | Az AttachmentDuplicatePolicy választja ki a duplikált nevek kezelését, az AttachmentSpoolThreshold vezérli a mellékletek spoololását, a DocumentLanguage pedig a dokumentum nyelvi metaadatát írja |
TXLSPDFSignature | A TextAlign, TextSize, TextColor, TextBold és TextItalic konfigurálja a látható aláírás megjelenését |
TXLSHTMLExport | A ViewMode (típus: TXLSHtmlViewMode: aktuális nézet vagy teljes táblázattábla) választja ki a HTML-bemutatást, a HotTrackTargets (TXLSHtmlHotTrackTarget halmaz) és a HotTrackColor pedig az interaktív cella- és objektumkiemelést konfigurálja |
TXLSXHtmlExportOptions | A ViewMode, HotTrackTargets és HotTrackColor a megfelelő XLSX HTML export vezérlőket biztosítja |
Számítási audit és munkafüzet-vezérlők
TXLSCalculationAuditReport | A Truncated a problémakorlát miatti csonkolást jelzi, a StackTruncated a hívási verem kereteinek csonkolását, az Issues pedig indexeli a rögzített számítási problémákat |
TXLSUserFunctionRegistry | A Generation akkor változik, amikor a regisztrált felhasználói függvények halmaza változik, így a gyorsítótárazott képletkötések érvényteleníthetők |
EXLSReportRecoverableData | A Category azonosítja a hívónak bemutatott, helyreállítható jelentésadat-kategóriát |
IXLSWorkBook | A ManualCalculationThreadCount korlátozza a kézi számítás által használt workerek számát |
TXLSXDataValidation | A HasUnknownImeMode olyan IME módértéket jelez, amelyet a HotXLS megőrzött, de nem ismer fel |
TXLSXTable | A ColumnCalculatedFormulaArrayRaw és a ColumnTotalsFormulaArrayRaw felfedi a táblaoszlopok eredeti tömbképlet-szövegét |
Örökölt PivotCache keretezési kompatibilitás
TXLSPivotCache | A RawBucketIndex azonosítja a forrás-alstream pozícióját, a RawFramingIsLegacy felismeri a régi HotXLS keretezést, a RawModelIsComplete jelzi, hogy a típusos modell minden rekordot reprezentál-e, a CanUpgradeFraming pedig azt, hogy az opt-in típusos újraírás biztonságos-e |
TXLSPivotCache | A StreamId felfedi a classic gyorsítótár-stream identitását, a SourceDataType a classic forrásadat típusát, a RawHasStorageStream pedig jelzi, hogy a betöltött gyorsítótár egy független PivotCache tárolóstreamből származott-e |
TXLSWorkbook | Az UpgradeLegacyPivotCacheFraming csak olyan örökölt HotXLS gyorsítótár-keretezések újraírását kapcsolja be, amelyek típusos modellje teljes; a sima nyers gyorsítótár-visszajátszás marad az alapértelmezés |
A StreamId SXStreamID rekordként íródik ([MS-XLS] §2.4.303), és a SXDB fejléc idstm mezőjeként ismétlődik, amivel egyeznie kell; a SourceDataType SXVS rekordként íródik ([MS-XLS] §2.4.317: $0001 munkalap, $0002 külső, $0004 konszolidáció, $0010 szcenárió), és a SXDB fejléc vsType mezőjeként ismétlődik, amivel szintén egyeznie kell. A munkalap-tartományból épített gyorsítótárak a munkalap típussal indulnak, míg a fájlból visszaolvasott gyorsítótárak megtartják az alstream által hordozott értéket, így a BIFF író soha nem hagy SXDB mezőt olyan rekorddal, amelyet nem bocsátott ki; a RawHasStorageStream azt a gyorsítótárat jelöli, amely a saját tárolóstreamjéből töltődött, és amelynek munkafüzet-globális leírója megelőzi a gyorsítótárazott rekordokat
Vágólap-integráció és beillesztési opciók
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;
A beillesztési opciókat mindkét facade PasteFromClipboard túlterhelése használja: az xlpoValuesOnly megtartja a képletcellák gyorsítótárazott értékeit, és kihagyja a formátumokat és az összevonásokat, míg az xlpoInsertRows és az xlpoInsertCols eltolja a meglévő tartalmat, mielőtt a blokk a helyére kerül
A segédek a Windows vágólapot csomagolják be táblázat-interop célra: a szöveges segédek CF_UNICODETEXT-et használnak (Fallback CF_TEXT-re az aktuális ANSI kódlapon keresztül), az XLSSetClipboardTextAndHtml egyetlen tranzakcióban ír szöveget és formázott HTML Format hasznos adatot, az XLSBuildHtmlClipboard kiszámolja a CF_HTML bájtoffsetokat dokumentumhoz vagy töredékhez, az XLSEncodeClipboardField pedig egy tabulátorral elválasztott mezőt tesz idézőjelek közé. A XLSParseClipboardGrid a vágólap szövegét tabulátorral elválasztott sorokként értelmezi ugyanazzal a típusfelismeréssel, amelyet a TXLSCSVLoader a CSV-hez használ, a Biff8 segédek pedig felderítik és beolvassák azt a natív streamet, amelyet az Excel maga helyez a vágólapra, így a beillesztett adat értékeket, képleteket és formázást őriz meg szövegveszteség nélkül
Cellamegjelenítési szöveg feloldása
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;
Egy közös feloldó dönti el, hogy egy cella mit mutat egy adott nézetállapotban: képleteket értékek helyett, elnyomott nullákat, rejtett képletszöveget védett munkalapokon, valamint a megduplázott szélességi faktort, amelyet az Excel a képletek megjelenítésekor alkalmaz. A munkafüzet-megjelenítő és a rendererek a megjelenítési beállítások belépési pontjain keresztül hívják, az alkalmazások pedig közvetlenül is hívhatják a XLSResolveCellDisplay-t saját bemeneti rekordjaikkal; a XLSDefaultCellDisplayOptions a kanonikus alapértelmezéseket adja vissza, a XLSNormalizeFormulaDisplayText pedig megjelenítésre normalizál egy képletsztringet
Classic adatérvényesítési objektumok
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 }
A típusos TXLSWorksheet.Add*Validation segédek TDVRange szabályokat hoznak létre a munkalap TDVRangeList-jében; minden szabály hordozza a TXLSDataValidationType típusát, a határait, a bemeneti és hibaüzeneteit, valamint a TXLSDvErrorStyle-t. A TDataValidator egy szerkesztést értékel ki a szabályok szerint, és jelzi, hogy az érték elfogadható-e — ez az ellenőrzés áll az Excel saját érvényesítési felszólításai mögött is
Indexelt színek pásztázása és feloldása
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);
Ezek a rekordok támasztják alá a munkafüzet szintű ResolveIndexedColor, NearestIndexedColor és ScanIndexedColorUsage metódusokat: egy feloldás jelenti, hogy az indexelt token a négy TXLSIndexedColorKind forrás melyikéből származik, együtt a palettahelyével, a rendszerszín-szerepével és a normalizált ARGB-jével; a legközelebbi egyezés hozzáadja a négyzetes RGB távolságot és az egzakt egyezés jelzőjét, a használatpásztázás pedig felcímkéz minden fogyasztói kategóriát, amely palettahelyet foglal le. A könyvtár belső TXLSIndexedColorMatcher gyorsítótárat tart a palettageneráció kulcsával — a FindNearest ebből válaszolja meg a legközelebbi szín lekérdezéseit, az UpdateSlot egy palettahelyet javít — így az ismételt feloldások allokációmentesek maradnak
A1 hivatkozási segédek
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;
Önálló segédek ugyanarra az A1 jelölésre, amelyet a munkafüzet API-jai elfogadnak: a nulla alapú koordinátákat A1 cellahivatkozásként formázzák, és visszafejtik a cella- vagy tartományhivatkozásokat, hibás bemenet esetén False értékkel térnek vissza kivétel dobása helyett
Lásd még