lxHandleX, herunder HTML-eksportindstillinger og hjælpefunktioner til kaldere, der arbejder direkte med XLSX-cellereferencer eller XML-payload-tekst
property FormulaArrayMemoryLimit: Int64;
MUNITallokerer, er som standard 64 MiB, gælder for parallelle rekalkuleringsarbejdere og fastklemmer værdier under ét Double -element
type
TXLSXHtmlExportOptions = class
constructor Create;
property Title: WideString;
property WriteDocument: Boolean;
property IncludeStyles: Boolean;
property IncludeBOM: Boolean;
property TableClass: WideString;
end;
| Title | Sætter dokumenttitlen, når WriteDocument er True |
| WriteDocument | Når True, skrives et komplet HTML-dokument. Når False, skrives kun tabelfragmentet |
| IncludeStyles | Styrer, om den eksporterede HTML inkluderer genereret CSS og inline-typografioplysninger |
| IncludeBOM | Styrer, om fil- og stream-output starter med et UTF-8 BOM |
| TableClass | Tilføjer et CSS-klassenavn til det genererede <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 | Konverterer et 1-baseret kolonneindeks til en A1-stil kolonneetiket som A, Zeller AA |
| XlsxCellRef | Bygger en A1-style cellereference ud fra 1-baserede række- og kolonnenumre |
| XlsxColumnIndex | Konverterer et A1-style kolonnelabel til et 1-baseret kolonneindeks |
| XlsxParseCellRef | Parser en enkelt A1-style cellereference og returnerer række- og kolonnekoordinater |
| XlsxParseRangeRef | Parser et rektangulært A1-style område og returnerer inklusive, 1-baserede grænser |
function XlsxEscapeText(const Value: WideString): WideString;
function XlsxEscapeAttr(const Value: WideString): WideString;
XlsxEscapeText escaper indholdet af XML-tekstnoder, mens XlsxEscapeAttr escaper XML-attributværdier og bevarer attribut-whitespace, som Excel skal læse præcist tilbage
De avancerede XLSX-medlemmer, der er dokumenteret i denne hjælpefil, sender og returnerer følgende simple typer, deklareret i 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 accepterer TXLSXFindOptions (match case, hel celle, søg i formler, wildcards, baglæns, efter kolonner), og ReplaceText tager en TXLSXReplaceEvent , hvis resultat vælger raReplace, raSkipeller raAbort pr. match med en skrivbar ANewText til pr. celle-erstatninger |
| Progress and saving | TXLSXWorkbook.OnProgress / OnProgressEx leverer TXLSXProgressPhase og (den udvidede form) TXLSXProgressState med et Abort -flag; RecalcBeforeSave er en TXLSXRecalcMode , der vælger manuel, kun-dirty eller altid-rekalkulering før serialisering; OnPassword er en TXLSXPasswordEvent , der leverer åbnings- og skriveadgangskoder |
| Custom properties | TXLSXWorkbook.CustomProperties er en TXLSXCustomProperties -samling med typede AddText / AddNumber / AddDate / AddBoolean -skabere, FindByName, Deleteog Clearplus gennemløb via Count og Items ; hver TXLSXCustomProperty tagger sin værdi med en TXLSXCustomPropType , der svarer til ECMA-376-variantmappningen |
| Style overlays | TXLSXStyleOverlays styrer overskrivelser pr. område oven på gemte typografier: Add opretter én, ApplyToCell omstyler en enkelt celle, Resolve, ResolveRowDefaultog ResolveColumnDefault besvarer typografiopslag under indlæsning, HasVirtualStyle rapporterer genererede typografier, MaxVirtualRow afgrænser virtuelle rækker, ApplyStructuralEdit flytter overlays efter række- eller kolonneredigeringer, og Clear, Countog Items vedligeholder samlingen |
| Styles, fills, and overlays | TXLSXFill eksponerer Pattern, GradientKindog GradientStops via TXLSXFillPattern, TXLSXGradientKindog TXLSXGradientStop; TXLSXWorksheet.StyleOverlays er en TXLSXStyleOverlays -samling, hvis TXLSXStyleOverlay -poster bærer et rektangel, de berørte formatdele og den overskrivende celletypografi |
| Tables, sorts, and links | Tilpassede tabeltypografier (TXLSXWorkbook.CustomTableStyles) bygger sektionsformatering fra TXLSXTableStyleSectionKind -pladser: samlingen tilbyder Add, FindByName, Delete, Clear, Countog Items, mens hver TXLSXCustomTableStyle eksponerer Name, SectionSize, PivotStyleog TableStyleFlag og besvarer HasSection / ResolveSection -opslag; sorteringsbetingelser klassificerer nøgler med TXLSXSortBy og tekstrækkefølge med TXLSXSortMethod; TXLSXExternalLink.Kind er en TXLSXExternalLinkKind , og hvert link lister TXLSXExternalDefinedName -poster med Name og RefersTo |
| Custom XML parts | TXLSXWorkbook.CustomXmlParts bevarer emnespecifik, tilpasset XML: Add, Deleteog Clear vedligeholder delene, hver TXLSXCustomXmlPart bærer sit payload i Xml plus et ItemId og en SchemaRefs -strengliste med schemarelationer (AddSchemaRef tilføjer), og bevarede dele round-tripper uændret gennem gemning |
| Cell style payloads | TXLSXCellStylePayload er en delbar, uforanderlig typografibundle knyttet til individuelle celler: Acquire / Release styrer dens referenceantal, Clone kopierer den, IsDefault tester standardtypografien, og InternKey identificerer ligeværdige payloads, så lageret kan deduplikere dem |
| Controls, drawings, and sparklines | TXLSXWorksheet.FormControls er en TXLSXFormControls -samling af TXLSXFormControl -objekter — hvert element eksponerer ControlType, Caption, MacroName, LinkedCellog sin Items -liste — typet af TXLSXFormControlTypemed TXLSXFormControlItems , der holder elementtekst pr. kontrolelement; tegneobjekter rapporterer deres type via TXLSDrawingObjectKind, og sparkline-grupper eksponerer aksskalering og tom-celle-adfærd via TXLSXSparklineAxisType og TXLSXSparklineEmptyCells |
| Charts | Plotgrupper og serier klassificerer bjælkegruppering, markørsymboler og datalabel-positioner med enums'ene TXLSXChartBarGrouping, TXLSXChartMarkerSymbolog TXLSXChartDataLabelPos ; diagrammodelnoderne deler basisklassen TXLSXChartMutable , og TXLSXChartLayoutResolver.ResolveChart udfylder en TXLSXChartResolvedLayout af TXLSXChartLayoutRect -rektangler for diagram, titel, legend, plot og aksetitler |
| Pagination keep blocks | KeepRowsTogether / KeepColumnsTogether på XLSX-pageringsfladen vedligeholder TXLSXKeepTogetherRange - og TXLSXKeepTogetherCols -records, så sideskiftsplanlægningen holder en blok på én side |
| Diagnostics | TXLSXWorksheet.CheckDataValidations returnerer TXLSXValidationIssue -records (celle, valideringsindeks, årsag); TXLSXWorkbook.ScanUnknownFunctions returnerer TXLSXUnknownFunctionInfo -records, der lokaliserer ikke-implementerede kald i celler og definerede navne; TXLSXCells.GetStorageStatistics udfylder en TXLSXCellStorageStatistics -record med optælling af celler, rækkeblokke, bytes pr. payload og typografi-tomme celler; TXLSXWorksheet.BuildRowMajorCellOrder returnerer en TXLSXRowMajorOrder , der beskriver gennemløbsrækkefølgen i hukommelsen af de udfyldte celler |
TXLSXWorkbook.FormulaLocale læser eller skriver det locale-tag, der bruges ved parsing og serialisering af formler, og spejler den klassiske projektbogs håndtering af formel-localeTabel-Slicers (Excel 2013+) skrives og inspiceres via to samlinger: TXLSXWorksheet.Slicers holder slicer-visningerne pr. ark (TXLSXSlicer), og TXLSXWorkbook.SlicerCaches holder de delte datakilder (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) bygger en slicer fra ende til anden: den registrerer eller genbruger den underliggende cache ved navn Slicer_<column>, reserverer det tilsvarende definerede navn #N/A , skriver regnearkets slicerList -udvidelse og forankrer visningen med et markup-kompatibelt tegneanker, hvis fallback-besked dækker ældre Excel-versioner; det andet overload fastlægger visningsrektanglet, ellers bruges et standardanker til højre for tabellen
Indlæste visninger og caches parses tilbage ved åbning, delte caches genbruges på tværs af visninger, og slettes den sidste visning af en cache, kasseres cachen; ukendte attributter og udvidelser bevarer deres oprindelige repræsentation, mens tabel-bindinger følger gemte tabel-id'er, og understøttede Pivot-forbindelser følger gemte ark-identiteter
Understøttede importerede ikke-OLAP Pivot-caches eksponerer typet medlemsinspektion og beskyttede markeringsændringer via IsNonOlapPivot, ItemCount, ItemCacheIndex, ItemSelected, SetSelectedItems og ClearSelection; se Pivot Slicer-markering for delt visningsadfærd, fejlatomitet og grænsen for den importerede same-field-maske
Ikke-understøttede Pivot-caches bevarer deres oprindelige bytes; en indlæst Slicer-visning er også tilgængelig som tegneobjekt 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;
Se arbejdsbogs-infrastruktur-API'en for I/O-callbacks, serializer-typografipools, verificering af krypterede filer og kontrakter for workspace-afhængighedsgrafer