lxHandleX, inklusive HTML-exportalternativ och hjälpfunktioner för anropare som arbetar direkt med XLSX-cellreferenser eller XML-payloadtext
property FormulaArrayMemoryLimit: Int64;
MUNIT, är som standard 64 MiB, gäller parallella omberäkningsworkers och avgränsar värden under ett Double -element
type
TXLSXHtmlExportOptions = class
constructor Create;
property Title: WideString;
property WriteDocument: Boolean;
property IncludeStyles: Boolean;
property IncludeBOM: Boolean;
property TableClass: WideString;
end;
| Title | Anger dokumentets titel när WriteDocument är True |
| WriteDocument | När True skrivs ett komplett HTML-dokument. När False skrivs endast tabellfragmentet |
| IncludeStyles | Styr om exporterad HTML inkluderar genererad CSS och inline-stilinformation |
| IncludeBOM | Styr om fil- och strömutdata börjar med en UTF-8-BOM |
| TableClass | Lägger till ett CSS-klassnamn på det genererade <table> -elementet |
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 | Konverterar ett 1-baserat kolumnindex till en A1-stils kolumnetikett, såsom A, Zeller AA |
| XlsxCellRef | Bygger en A1-stils cellreferens från 1-baserade rad- och kolumnnummer |
| XlsxColumnIndex | Konverterar en A1-stils kolumnetikett till ett 1-baserat kolumnindex |
| XlsxParseCellRef | Tolkar en enskild A1-stils cellreferens och returnerar rad- och kolumnkoordinater |
| XlsxParseRangeRef | Tolkar ett rektangulärt A1-stils område och returnerar inkluderande 1-baserade gränser |
function XlsxEscapeText(const Value: WideString): WideString;
function XlsxEscapeAttr(const Value: WideString): WideString;
XlsxEscapeText gör XML-textnodsinnehåll säkert, medan XlsxEscapeAttr gör XML-attributvärden säkra och bevarar attributets mellanslag som Excel måste läsa tillbaka exakt
De avancerade XLSX-medlemmar som dokumenteras i den här hjälpfilen skickar och returnerar följande enkla typer, deklarerade 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 accepterar TXLSXFindOptions (matcha versaler/gemener, hela cellen, sök formler, jokertecken, bakåt, efter kolumner) och ReplaceText tar en TXLSXReplaceEvent vars resultat väljer raReplace, raSkipeller raAbort per träff, med en skrivbar ANewText för ersättningar per cell |
| Progress and saving | TXLSXWorkbook.OnProgress / OnProgressEx levererar TXLSXProgressPhase och (utökad form) TXLSXProgressState med en Abort -flagga; RecalcBeforeSave är en TXLSXRecalcMode som väljer manuell, endast smutsiga eller alltid-omberäkning före serialisering; OnPassword är en TXLSXPasswordEvent som levererar öppnings- och skrivlösenord |
| Custom properties | TXLSXWorkbook.CustomProperties är en samling TXLSXCustomProperties med typade skapare AddText / AddNumber / AddDate / AddBoolean , FindByName, Deleteoch Clear, plus Count - och Items -uppräkning; varje TXLSXCustomProperty märker sitt värde med en TXLSXCustomPropType som matchar ECMA-376-variantmappningen |
| Style overlays | TXLSXStyleOverlays hanterar åsidosättningar per område ovanpå lagrade stilar: Add skapar en, ApplyToCell omstilar en enskild cell, Resolve, ResolveRowDefaultoch ResolveColumnDefault svarar på stiluppslagningar vid inläsning, HasVirtualStyle rapporterar genererade stilar, MaxVirtualRow avgränsar virtuella rader, ApplyStructuralEdit skiftar överlägg efter rad- eller kolumnredigeringar, och Clear, Countoch Items underhåller samlingen |
| Styles, fills, and overlays | TXLSXFill exponerar Pattern, GradientKindoch GradientStops via TXLSXFillPattern, TXLSXGradientKindoch TXLSXGradientStop; TXLSXWorksheet.StyleOverlays är en samling TXLSXStyleOverlays vars TXLSXStyleOverlay -poster bär en rektangel, de berörda formatdelarna och den åsidosättande cellstilen |
| Tables, sorts, and links | Anpassade tabellstilar (TXLSXWorkbook.CustomTableStyles) bygger sektionsformatering från TXLSXTableStyleSectionKind -platser: samlingen erbjuder Add, FindByName, Delete, Clear, Countoch Items, medan varje TXLSXCustomTableStyle exponerar Name, SectionSize, PivotStyleoch TableStyleFlag och svarar på HasSection / ResolveSection -uppslag; sorteringsvillkor klassificerar nycklar med TXLSXSortBy och textordning med TXLSXSortMethod; TXLSXExternalLink.Kind är en TXLSXExternalLinkKind och varje länk listar TXLSXExternalDefinedName -poster med Name och RefersTo |
| Custom XML parts | TXLSXWorkbook.CustomXmlParts bevarar objektspecifik anpassad XML: Add, Deleteoch Clear underhåller delarna, varje TXLSXCustomXmlPart bär sin nyttolast i Xml plus en ItemId och en SchemaRefs -stränglista med schemarelationer (AddSchemaRef lägger till), och bevarade delar går orörda genom sparningen |
| Cell style payloads | TXLSXCellStylePayload är ett delbart oföränderligt stilpaket som fästs vid enskilda celler: Acquire / Release hanterar dess referensräknare, Clone kopierar det, IsDefault testar standardstilen, och InternKey identifierar lika nyttolaster så att lagringen kan deduplicera dem |
| Controls, drawings, and sparklines | TXLSXWorksheet.FormControls är en samling TXLSXFormControls med TXLSXFormControl -objekt — varje objekt exponerar ControlType, Caption, MacroName, LinkedCelloch sin Items -lista — typade av TXLSXFormControlType, med TXLSXFormControlItems som bär objekttext per kontroll; ritobjekt rapporterar sin typ via TXLSDrawingObjectKind, och sparkline-grupper exponerar axelskalning och beteende för tomma celler via TXLSXSparklineAxisType och TXLSXSparklineEmptyCells |
| Charts | Plotgrupper och serier klassificerar stapelgruppering, markersymboler och positioner för dataetiketter med uppräkningarna TXLSXChartBarGrouping, TXLSXChartMarkerSymboloch TXLSXChartDataLabelPos ; diagrammodellens noder delar basklassen TXLSXChartMutable , och TXLSXChartLayoutResolver.ResolveChart fyller en TXLSXChartResolvedLayout av TXLSXChartLayoutRect -rektanglar för diagram, titel, diagramförklaring, plot och axeltitlar |
| Pagination keep blocks | KeepRowsTogether / KeepColumnsTogether på XLSX-pagineringsytan underhåller posterna TXLSXKeepTogetherRange och TXLSXKeepTogetherCols så att planeringen av sidbrytningar håller ett block på en sida |
| Diagnostics | TXLSXWorksheet.CheckDataValidations returnerar TXLSXValidationIssue -poster (cell, valideringsindex, orsak); TXLSXWorkbook.ScanUnknownFunctions returnerar TXLSXUnknownFunctionInfo -poster som lokaliserar oimplementerade anrop i celler och definierade namn; TXLSXCells.GetStorageStatistics fyller en post TXLSXCellStorageStatistics med redovisning av celler, radblock, byte per nyttolast och formaterade tomma celler; TXLSXWorksheet.BuildRowMajorCellOrder returnerar en TXLSXRowMajorOrder som beskriver den interna traverseringsordningen för ifyllda celler |
TXLSXWorkbook.FormulaLocale läser eller skriver språktaggen som används vid tolkning och serialisering av formler, i linje med den klassiska arbetsbokens hantering av formelspråkTabellslicers (Excel 2013+) skrivs och granskas via två samlingar: TXLSXWorksheet.Slicers håller slicervyerna per blad (TXLSXSlicer) och TXLSXWorkbook.SlicerCaches håller de delade datakällorna (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 från grunden: den registrerar eller återanvänder bakgrundscachen med namnet Slicer_<column>, reserverar det matchande definierade namnet #N/A , skriver kalkylbladets slicerList -tillägg och förankrar vyn med ett markupkompatibelt ritankare vars reservmeddelande täcker äldre Excel-versioner; den andra överlagringen fäster visningsrektangeln, annars används ett standardankare till höger om tabellen
Inlästa vyer och cacher tolkas tillbaka vid öppning, delade cacher återanvänds över vyer, och att ta bort en cachs sista vy släpper cachen; okända attribut och tillägg behåller sin ursprungliga representation, medan tabellbindningar spårar sparade tabell-id:n och stödda pivotanslutningar spårar sparade bladidentiteter
Stödda importerade icke-OLAP-pivotcacher exponerar typad medlemsinspektion och bevakade selektionsändringar via IsNonOlapPivot, ItemCount, ItemCacheIndex, ItemSelected, SetSelectedItemsoch ClearSelection; se Pivot Slicer-selektion för beteendet hos delade vyer, atomära fel och gränsen för den importerade samma-fält-masken
Pivotcacher som inte stöds behåller sina ursprungliga byte; en inläst slicervy nås också som ritobjekt 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 arbetsbokens infrastruktur-API för I/O-återanrop, stilpooler i serialiseraren, verifiering av krypterade filer och kontrakt för arbetsplatsens beroendegraf