lxHandleXworden gedeclareerd, inclusief HTML-exportopties en hulpfuncties voor aanroepers die rechtstreeks met XLSX-celverwijzingen of XML-payloadtekst werken.
property FormulaArrayMemoryLimit: Int64;
MUNITwordt toegewezen, staat standaard op 64 MiB, geldt ook voor parallelle herberekeningsworkers en kapwaarden onder één Double -element af
type
TXLSXHtmlExportOptions = class
constructor Create;
property Title: WideString;
property WriteDocument: Boolean;
property IncludeStyles: Boolean;
property IncludeBOM: Boolean;
property TableClass: WideString;
end;
| Title | Stelt de documenttitel in wanneer WriteDocument True is |
| WriteDocument | Schrijft bij true een volledig HTML-document. Bij False wordt alleen het tabelfragment geschreven |
| IncludeStyles | Bepaalt of geëxporteerde HTML gegenereerde CSS- en inline-stijlinformatie bevat |
| IncludeBOM | Bepaalt of bestands- en streamuitvoer begint met een UTF-8-BOM |
| TableClass | Voegt een CSS-klassenaam toe aan het gegenereerde <table> -element |
function XlsxColumnLabel(Col: Integer): WideString;
function XlsxCellRef(Row, Col: Integer): WideString;
function XlsxColumnIndex(const ColumnLabel: WideString): Integer;
function XlsxParseCellRef(const Ref: WideString; out Row, Col: Integer): Boolean;
function XlsxParseRangeRef(const Ref: WideString; out Row1, Col1, Row2, Col2: Integer): Boolean;
| XlsxColumnLabel | Converteert een op 1 gebaseerde kolomindex naar een A1-stijl kolomlabel zoals A, Zof AA |
| XlsxCellRef | Bouwt een A1-stijl celverwijzing uit op 1 gebaseerde rij- en kolomnummers |
| XlsxColumnIndex | Converteert een A1-stijl kolomlabel naar een op 1 gebaseerde kolomindex |
| XlsxParseCellRef | Ontleedt een enkele A1-stijl celverwijzing en retourneert rij- en kolomcoördinaten |
| XlsxParseRangeRef | Ontleedt een rechthoekig A1-stijl bereik en retourneert inclusieve op 1 gebaseerde grenzen |
function XlsxEscapeText(const Value: WideString): WideString;
function XlsxEscapeAttr(const Value: WideString): WideString;
XlsxEscapeText escapt de inhoud van XML-tekstknooppunten, terwijl XlsxEscapeAttr XML-attribuutwaarden escapt en attribuut-whitespace behoudt die Excel precies moet kunnen teruglezen.
De geavanceerde XLSX-members die in dit helpbestand worden beschreven, geven de volgende platte types door en retourneren die, gedeclareerd in lxHandleX
{ Find and replace }
TXLSXFindFlag = (lxfMatchCase, lxfWholeCell, lxfSearchFormulas,
lxfUseWildcards, lxfBackward, lxfByColumns);
TXLSXFindOptions = set of TXLSXFindFlag;
TXLSXReplaceAction = (raReplace, raSkip, raAbort);
TXLSXReplaceEvent = function(ARow, ACol: Integer;
const ACurrentText: WideString; var ANewText: WideString):
TXLSXReplaceAction of object;
{ Progress and recalculation policy }
TXLSXProgressPhase = (xlsxProgressReading, xlsxProgressWriting,
xlsxProgressCalculating, xlsxProgressExporting);
TXLSXProgressState = (ppsBegin, ppsWork, ppsEnd);
TXLSXRecalcMode = (xrmManual, xrmIfDirty, xrmAlways);
TXLSXPasswordEvent = procedure(Sender: TObject;
var PassWord: WideString) of object;
{ Custom document properties (docProps/custom.xml) }
TXLSXCustomPropType = (xcptText, xcptNumber, xcptDate, xcptBoolean);
TXLSXCustomProperty = class
Name: WideString;
PropType: TXLSXCustomPropType;
{ + TextValue, NumberValue, DateValue, BoolValue accessors }
end;
{ Table styles, fills, sorts, external links, controls, sparklines }
TXLSXTableStyleSectionKind = (xltssWholeTable, xltssHeaderRow,
xltssTotalRow, xltssFirstColumn, xltssLastColumn, xltssFirstRowStripe,
xltssSecondRowStripe, xltssFirstColumnStripe, xltssSecondColumnStripe,
xltssFirstHeaderCell, xltssLastHeaderCell, xltssFirstTotalCell,
xltssLastTotalCell { + subtotal and subheading slots });
TXLSXFillPattern = (xlsxFillNone, xlsxFillSolid, xlsxFillGray125
{ + the remaining ECMA-376 pattern values });
TXLSXGradientKind = (xlsxGradientNone, xlsxGradientLinear, xlsxGradientPath);
TXLSXSortBy = (xlsxBsValue, xlsxBsCellColor, xlsxBsFontColor, xlsxBsIcon);
TXLSXSortMethod = (xlsxSmNone, xlsxSmStroke, xlsxSmPinYin);
TXLSXExternalLinkKind = (xlsxExternalLinkUnknown, xlsxExternalLinkWorkbook,
xlsxExternalLinkDde { + the remaining link kinds });
TXLSXFormControlType = (xfcButton, xfcCheckBox, xfcRadioButton, xfcComboBox,
xfcListBox);
TXLSXSparklineAxisType = (xlsxSparklineAxisIndividual,
xlsxSparklineAxisGroup, xlsxSparklineAxisCustom);
TXLSXSparklineEmptyCells = (xlsxSparklineEmptyGap, xlsxSparklineEmptyZero,
xlsxSparklineEmptySpan);
{ Chart authoring and layout }
TXLSXChartBarGrouping = (xlsxBarGroupClustered, xlsxBarGroupStacked,
xlsxBarGroupPercentStacked);
TXLSXChartMarkerSymbol = (xlsxMarkerAuto, xlsxMarkerCircle, xlsxMarkerDash,
xlsxMarkerDiamond, xlsxMarkerDot, xlsxMarkerPlus, xlsxMarkerSquare,
xlsxMarkerStar, xlsxMarkerTriangle, xlsxMarkerX, xlsxMarkerNone);
TXLSXChartDataLabelPos = (xlsxDlblPosDefault, xlsxDlblPosCenter,
xlsxDlblPosInEnd, xlsxDlblPosOutEnd, xlsxDlblPosBestFit, xlsxDlblPosLeft,
xlsxDlblPosRight, xlsxDlblPosTop, xlsxDlblPosBottom);
TXLSXChartMutable = class; { mutable base of the chart model nodes }
TXLSXChartLayoutRect = record
Left, Top, Right, Bottom: Double;
end;
TXLSXChartResolvedLayout = record
ChartRect: TXLSXChartLayoutRect;
TitleRect: TXLSXChartLayoutRect;
LegendRect: TXLSXChartLayoutRect;
PlotOuterRect: TXLSXChartLayoutRect;
PlotInnerRect: TXLSXChartLayoutRect;
{ + per-axis title rectangles and visibility flags }
end;
{ Pagination keep-together blocks }
TXLSXKeepTogetherRange = record
Row1, Row2: Integer;
Level: Integer;
ReplaceBiggerLevels: Boolean;
end;
TXLSXKeepTogetherCols = record
Col1, Col2: Integer;
Level: Integer;
ReplaceBiggerLevels: Boolean;
end;
{ Diagnostics records }
TXLSXValidationIssue = record
Row, Col: Integer;
ValidationIndex: Integer;
Reason: WideString;
end;
TXLSXUnknownFunctionInfo = record
Sheet: Integer;
Row, Col: Integer;
Name: WideString;
LocationKind: TXLSFormulaSymbolLocationKind;
DefinedNameIndex: Integer;
DefinedName: WideString;
end;
TXLSXRowMajorOrder = record
CellOrder: array of Integer;
RowStarts: array of Integer;
MaxRow: Integer;
end;
| Find and replace | TXLSXWorksheet.FindText / FindTextIn accepteren TXLSXFindOptions (hoofdlettergevoelig, hele cel, formules doorzoeken, jokertekens, achterwaarts, per kolom) en ReplaceText neemt een TXLSXReplaceEvent waarvan het resultaat per match raReplace, raSkipof raAbort kiest, met een beschrijfbare ANewText voor vervanging per cel |
| Progress and saving | TXLSXWorkbook.OnProgress / OnProgressEx leveren TXLSXProgressPhase en (uitgebreide vorm) TXLSXProgressState met een Abort -vlag; RecalcBeforeSave is een TXLSXRecalcMode die handmatige, alleen-dirty of altijd-herberekening vóór serialisatie kiest; OnPassword is een TXLSXPasswordEvent dat open- en schrijfwachtwoorden levert |
| Custom properties | TXLSXWorkbook.CustomProperties is een TXLSXCustomProperties -collectie met getypeerde makers AddText / AddNumber / AddDate / AddBoolean , plus FindByName, Delete, Clearen enumeratie via Count en Items ; elke TXLSXCustomProperty tagt zijn waarde met een TXLSXCustomPropType die past bij de ECMA-376-variantmapping |
| Style overlays | TXLSXStyleOverlays beheert overrides per bereik bovenop opgeslagen stijlen: Add maakt er één aan, ApplyToCell maakt één cel opnieuw op, Resolve, ResolveRowDefaulten ResolveColumnDefault beantwoorden stijlopzoekingen tijdens het laden, HasVirtualStyle rapporteert gegenereerde stijlen, MaxVirtualRow begrenst virtuele rijen, ApplyStructuralEdit verschuift overlays na rij- of kolombewerkingen, en Clear, Counten Items beheren de collectie |
| Styles, fills, and overlays | TXLSXFill stelt Pattern, GradientKinden GradientStops bloot via TXLSXFillPattern, TXLSXGradientKinden TXLSXGradientStop; TXLSXWorksheet.StyleOverlays is een TXLSXStyleOverlays -collectie waarvan de TXLSXStyleOverlay -entries een rechthoek, de betrokken opmaakonderdelen en de overrulende celstijl dragen |
| Tables, sorts, and links | Aangepaste tabelstijlen (TXLSXWorkbook.CustomTableStyles) bouwen sectie-opmaak uit TXLSXTableStyleSectionKind -slots: de collectie biedt Add, FindByName, Delete, Clear, Counten Items, terwijl elke TXLSXCustomTableStyle exposes Name, SectionSize, PivotStyleen TableStyleFlag blootlegt en HasSection / ResolveSection -opzoekingen beantwoordt; sorteercondities classificeren sleutels met TXLSXSortBy en tekstvolgorde met TXLSXSortMethod; TXLSXExternalLink.Kind is een TXLSXExternalLinkKind en elke koppeling somt TXLSXExternalDefinedName -entries op met Name en RefersTo |
| Custom XML parts | TXLSXWorkbook.CustomXmlParts bewaart itemspecifieke aangepaste XML: Add, Deleteen Clear beheren de parts, elke TXLSXCustomXmlPart draagt zijn payload in Xml plus een ItemId en een SchemaRefs -stringlijst met schemarelacies (AddSchemaRef voegt toe), en bewaarde parts doorlopen save ongewijzigd |
| Cell style payloads | TXLSXCellStylePayload is een deelbare immutabele stijlbundel die aan individuele cellen hangt: Acquire / Release beheren de referentieteller, Clone kopieert hem, IsDefault test de standaardstijl, en InternKey identificeert gelijke payloads zodat de opslag ze kan ontdubbelen |
| Controls, drawings, and sparklines | TXLSXWorksheet.FormControls is een TXLSXFormControls -collectie van TXLSXFormControl -objecten — elk stelt ControlType, Caption, MacroName, LinkedCellen zijn Items -lijst bloot — getypeerd door TXLSXFormControlType, met TXLSXFormControlItems dat itemtekst per besturingselement bewaart; tekenobjecten rapporteren hun soort via TXLSDrawingObjectKind, en sparkline-groepen stellen asschaling en gedrag voor lege cellen bloot via TXLSXSparklineAxisType en TXLSXSparklineEmptyCells |
| Charts | Plotgroepen en series classificeren staafgroepering, markersymbolen en posities van datalabels met de enums TXLSXChartBarGrouping, TXLSXChartMarkerSymbolen TXLSXChartDataLabelPos ; de grafiekmodelknopen delen de basisklasse TXLSXChartMutable , en TXLSXChartLayoutResolver.ResolveChart vult een TXLSXChartResolvedLayout met TXLSXChartLayoutRect -rechthoeken voor grafiek, titel, legenda, plot en astitels |
| Pagination keep blocks | KeepRowsTogether / KeepColumnsTogether op het XLSX-pagineringsoppervlak beheren de records TXLSXKeepTogetherRange en TXLSXKeepTogetherCols , zodat paginabreukplanning een blok op één pagina houdt |
| Diagnostics | TXLSXWorksheet.CheckDataValidations geeft TXLSXValidationIssue -records terug (cel, validatie-index, reden); TXLSXWorkbook.ScanUnknownFunctions geeft TXLSXUnknownFunctionInfo -records terug die niet-geïmplementeerde aanroepen in cellen en gedefinieerde namen lokaliseren; TXLSXCells.GetStorageStatistics vult een TXLSXCellStorageStatistics -record met cel-, rijblok-, per-payload-byte- en styled-blank-boekhouding; TXLSXWorksheet.BuildRowMajorCellOrder geeft een TXLSXRowMajorOrder terug die de in-memory traversatievolgorde van gevulde cellen beschrijft |
TXLSXWorkbook.FormulaLocale leest of schrijft de locale-tag die wordt gebruikt bij het parsen en serialiseren van formules, spiegelbeeld van de formule-locale-afhandeling van de klassieke werkmapTable slicers (Excel 2013+) worden weggeschreven en geïnspecteerd via twee collecties: TXLSXWorksheet.Slicers bevat de slicer-views per werkblad (TXLSXSlicer) en TXLSXWorkbook.SlicerCaches bevat de gedeelde gegevensbronnen (TXLSXSlicerCache)
property TXLSXWorksheet.Slicers: TXLSXSlicers;
property TXLSXWorkbook.SlicerCaches: TXLSXSlicerCaches;
{ TXLSXSlicers }
function Add(ATable: TXLSXTable; const AColumnName: WideString): TXLSXSlicer; overload;
function Add(ATable: TXLSXTable; const AColumnName: WideString;
ARow1, ACol1, ARow2, ACol2: Integer): TXLSXSlicer; overload;
function IndexByName(const AName: WideString): Integer;
function FindByName(const AName: WideString): TXLSXSlicer;
procedure Delete(Index: Integer);
procedure Clear;
property Count: Integer;
property Items[Index: Integer]: TXLSXSlicer;
{ TXLSXSlicer view }
property Name: WideString; { workbook-unique }
property CacheName: WideString;
property Cache: TXLSXSlicerCache;
property Caption: WideString;
property StartItem: Integer;
property ColumnCount: Integer;
property ColumnWidth: WideString;
property ShowCaption: Integer;
property StyleName: WideString;
property LockedPosition: Integer;
property RowHeight: WideString;
property RowHeightEmu: Integer;
procedure SetBounds(ARow1, ACol1, ARow2, ACol2: Integer);
property FromRow, FromCol, ToRow, ToCol: Integer; { anchor cell corners }
property FromRowOff, FromColOff, ToRowOff, ToColOff: Integer; { EMU offsets }
property AnchorType: TXLSXAnchorEditAs;
property HasAnchor: Boolean;
{ TXLSXSlicers, load-path entry }
function AddInternal: TXLSXSlicer;
{ TXLSXSlicerCache }
property Name: WideString; { e.g. Slicer_Region }
property SourceName: WideString; { source table column / pivot field }
property IsTableCache: Boolean;
property IsPivot: Boolean;
property IsNonOlapPivot: Boolean;
property ItemCount: Integer;
property ItemCacheIndex[Index: Integer]: Integer;
property ItemSelected[Index: Integer]: Boolean;
function SetSelectedItems(const CacheItemIndices: array of Integer): Integer;
function ClearSelection: Integer;
property TableId: Integer;
property TableColumnId: Integer;
property SortOrder: WideString; { '' | ascending | descending }
property CrossFilter: WideString; { '' | none | showItemsWithDataAtTop | showItemsWithNoData }
property CustomListSort: Integer; { -1 absent, else 0/1 }
{ TXLSXSlicerCaches }
function Add: TXLSXSlicerCache;
function FindByName(const AName: WideString): TXLSXSlicerCache;
function IndexOfName(const AName: WideString): Integer;
function FindForTableColumn(ATableId, ATableColumnId: Integer): TXLSXSlicerCache;
procedure Delete(Index: Integer);
procedure Clear;
property Count: Integer;
property Items[Index: Integer]: TXLSXSlicerCache;
Slicers.Add(Table, ColumnName) bouwt een slicer end-to-end op: het registreert of hergebruikt de onderliggende cache met naam Slicer_<column>, reserveert de bijbehorende gedefinieerde naam #N/A , schrijft de werkbladextensie slicerList en verankert de view met een markup-compatibel tekenanker waarvan de fallback-melding oudere Excel-versies dekt; de tweede overload pin de viewrechthoek vast, anders wordt een standaardanker rechts van de tabel gebruikt
Geladen views en caches worden bij het openen opnieuw geparseerd, gedeelde caches worden hergebruikt over views heen, en het verwijderen van de laatste view van een cache laat de cache vallen; onbekende attributen en extensies behouden hun oorspronkelijke representatie, terwijl tabelbindingen opgeslagen table-ids volgen en ondersteunde Pivot-verbindingen opgeslagen bladidentiteiten volgen
Ondersteunde geïmporteerde niet-OLAP Pivot-caches leggen getypeerde ledeninspectie en bewaakte selectiewijzigingen bloot via IsNonOlapPivot, ItemCount, ItemCacheIndex, ItemSelected, SetSelectedItems en ClearSelection; zie Pivot Slicer-selectie voor gedeeld viewgedrag, faalatomiciteit en de grens van het geïmporteerde same-field-masker
Niet-ondersteunde Pivot-caches behouden hun oorspronkelijke bytes; een geladen slicer-view is ook bereikbaar als tekenobject via TXLSXDrawingObject.Slicer
var
Ref: WideString;
Row, Col: Integer;
begin
Ref := XlsxCellRef(10, 5);
if XlsxParseCellRef(Ref, Row, Col) then
Worksheet.Cells.Item[Row, Col].Value := 'Checked';
end;
Zie werkmapinfrastructuur-API voor I/O-callbacks, serializer-stijlpools, verificatie van versleutelde bestanden en contracten voor de werkruimte-afhankelijkheidsgrafiek