HotXLS-dokumentation

Yderligere XLSX-facade API-medlemmer

Denne side dækker de mindre, offentlige API-medlemmer, der er deklareret i lxHandleX, herunder HTML-eksportindstillinger og hjælpefunktioner til kaldere, der arbejder direkte med XLSX-cellereferencer eller XML-payload-tekst

Hukommelsesgrænse for formelarray

property FormulaArrayMemoryLimit: Int64;
      
Begrænser det payload, som genererede formelarrayer som MUNITallokerer, er som standard 64 MiB, gælder for parallelle rekalkuleringsarbejdere og fastklemmer værdier under ét Double -element

HTML-eksportindstillinger

type
  TXLSXHtmlExportOptions = class
    constructor Create;
    property Title: WideString;
    property WriteDocument: Boolean;
    property IncludeStyles: Boolean;
    property IncludeBOM: Boolean;
    property TableClass: WideString;
  end;
      
TitleSætter dokumenttitlen, når WriteDocument er True
WriteDocumentNår True, skrives et komplet HTML-dokument. Når False, skrives kun tabelfragmentet
IncludeStylesStyrer, om den eksporterede HTML inkluderer genereret CSS og inline-typografioplysninger
IncludeBOMStyrer, om fil- og stream-output starter med et UTF-8 BOM
TableClassTilføjer et CSS-klassenavn til det genererede <table> -element

XLSX-reference-hjælpefunktioner

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;
      
XlsxColumnLabelKonverterer et 1-baseret kolonneindeks til en A1-stil kolonneetiket som A, Zeller AA
XlsxCellRefBygger en A1-style cellereference ud fra 1-baserede række- og kolonnenumre
XlsxColumnIndexKonverterer et A1-style kolonnelabel til et 1-baseret kolonneindeks
XlsxParseCellRefParser en enkelt A1-style cellereference og returnerer række- og kolonnekoordinater
XlsxParseRangeRefParser et rektangulært A1-style område og returnerer inklusive, 1-baserede grænser

XLSX XML-escape-hjælpefunktioner

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

Understøttende typer for avancerede XLSX-medlemmer

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 replaceTXLSXWorksheet.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 savingTXLSXWorkbook.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 propertiesTXLSXWorkbook.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 overlaysTXLSXStyleOverlays 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 overlaysTXLSXFill 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 linksTilpassede 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 partsTXLSXWorkbook.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 payloadsTXLSXCellStylePayload 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 sparklinesTXLSXWorksheet.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
ChartsPlotgrupper 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 blocksKeepRowsTogether / KeepColumnsTogether på XLSX-pageringsfladen vedligeholder TXLSXKeepTogetherRange - og TXLSXKeepTogetherCols -records, så sideskiftsplanlægningen holder en blok på én side
DiagnosticsTXLSXWorksheet.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-locale

Tabel-Slicers

Tabel-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

Eksempel

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