lxHandleXdeklariert werden, einschließlich HTML-Exportoptionen und Hilfsfunktionen für Aufrufer, die direkt mit XLSX-Zellreferenzen oder XML-Nutzlasttexten arbeiten
property FormulaArrayMemoryLimit: Int64;
MUNITallokieren, mit einem Standardwert von 64 MiB; gilt für parallele Neuberechnungs-Worker und klemmt Werte unterhalb eines Double -Elements ab
type
TXLSXHtmlExportOptions = class
constructor Create;
property Title: WideString;
property WriteDocument: Boolean;
property IncludeStyles: Boolean;
property IncludeBOM: Boolean;
property TableClass: WideString;
end;
| Title | Setzt den Dokumenttitel, wenn WriteDocument True ist |
| WriteDocument | Wenn True, wird ein vollständiges HTML-Dokument geschrieben. Wenn False, nur das Tabellen-Fragment |
| IncludeStyles | Steuert, ob exportiertes HTML generierte CSS und Inline-Style-Informationen enthält |
| IncludeBOM | Steuert, ob Datei- und Stream-Ausgabe mit einer UTF-8-BOM beginnt |
| TableClass | Fügt dem generierten <table> -Element einen CSS-Klassennamen hinzu |
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 | Wandelt einen 1-basierten Spaltenindex in ein A1-Style-Spaltenlabel wie A, Zoder AA |
| XlsxCellRef | Baut eine A1-Style-Zellreferenz aus 1-basierten Zeilen- und Spaltennummern |
| XlsxColumnIndex | Wandelt ein A1-Style-Spaltenlabel in einen 1-basierten Spaltenindex um |
| XlsxParseCellRef | Parst eine einzelne A1-Style-Zellreferenz und liefert Zeilen- und Spaltenkoordinaten |
| XlsxParseRangeRef | Parst einen rechteckigen A1-Style-Bereich und liefert inklusive 1-basierte Grenzen |
function XlsxEscapeText(const Value: WideString): WideString;
function XlsxEscapeAttr(const Value: WideString): WideString;
XlsxEscapeText maskiert XML-Textknoten-Inhalte, während XlsxEscapeAttr XML-Attributwerte maskiert und Attribut-Leerzeichen erhält, die Excel genau zurücklesen muss
Die erweiterten XLSX-Member, die in dieser Hilfedatei dokumentiert sind, übergeben und zurückgeben die folgenden plain types, deklariert 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 nehmen TXLSXFindOptions (Groß-/Kleinschreibung, ganze Zelle, Formeln durchsuchen, Wildcards, rückwärts, spaltenweise), und ReplaceText nimmt ein TXLSXReplaceEvent , dessen Ergebnis je Treffer raReplace, raSkipoder raAbort wählt, mit schreibbarem ANewText für Ersetzungen pro Zelle |
| Progress and saving | TXLSXWorkbook.OnProgress / OnProgressEx liefern TXLSXProgressPhase und (erweiterte Form) TXLSXProgressState mit einem Abort -Flag; RecalcBeforeSave ist ein TXLSXRecalcMode , der vor der Serialisierung manuelle, nur-dirty- oder immer-neuberechnen Auswahl trifft; OnPassword ist ein TXLSXPasswordEvent , der Öffnungs- und Schreibpasswörter liefert |
| Custom properties | TXLSXWorkbook.CustomProperties ist eine TXLSXCustomProperties -Sammlung mit typisierten AddText / AddNumber / AddDate / AddBoolean -Konstruktoren, FindByName, Deleteund Clear, plus Count - und Items -Aufzählung; jede TXLSXCustomProperty taggt ihren Wert mit einem TXLSXCustomPropType passend zur ECMA-376-Varianten-Zuordnung |
| Style overlays | TXLSXStyleOverlays verwaltet Bereichs-Overrides auf gespeicherten Styles: Add erzeugt einen, ApplyToCell restyled eine einzelne Zelle, Resolve, ResolveRowDefaultund ResolveColumnDefault beantworten Style-Abfragen beim Laden, HasVirtualStyle meldet generierte Styles, MaxVirtualRow begrenzt virtuelle Zeilen, ApplyStructuralEdit verschiebt Overlays nach Zeilen- oder Spalten-Änderungen, und Clear, Countund Items pflegen die Sammlung |
| Styles, fills, and overlays | TXLSXFill legt Pattern, GradientKindund GradientStops über TXLSXFillPattern, TXLSXGradientKindund TXLSXGradientStopoffen; TXLSXWorksheet.StyleOverlays ist eine TXLSXStyleOverlays -Sammlung, deren TXLSXStyleOverlay -Einträge ein Rechteck, die betroffenen Formatteile und den übersteuernden Zellstyle tragen |
| Tables, sorts, and links | Benutzerdefinierte Tabellenstyles (TXLSXWorkbook.CustomTableStyles) bauen Abschnittsformatierung aus TXLSXTableStyleSectionKind -Slots: die Sammlung bietet Add, FindByName, Delete, Clear, Countund Items, während jede TXLSXCustomTableStyle exposes Name, SectionSize, PivotStyleund TableStyleFlag offenlegt und HasSection / ResolveSection -Abfragen beantwortet; Sortierbedingungen klassifizieren Schlüssel mit TXLSXSortBy und Textordnung mit TXLSXSortMethod; TXLSXExternalLink.Kind ist ein TXLSXExternalLinkKind , und jeder Link listet TXLSXExternalDefinedName -Einträge mit Name und RefersTo |
| Custom XML parts | TXLSXWorkbook.CustomXmlParts bewahrt elementenspezifisches Custom-XML: Add, Deleteund Clear pflegen die Teile, jedes TXLSXCustomXmlPart trägt seine Payload in Xml plus eine ItemId und eine SchemaRefs -Stringliste der Schemabeziehungen (AddSchemaRef hängt an), und erhaltene Teile durchlaufen das Speichern unverändert |
| Cell style payloads | TXLSXCellStylePayload ist ein teilbares, unveränderliches Style-Bundle an einzelnen Zellen: Acquire / Release verwalten seinen Referenzzähler, Clone kopiert es, IsDefault testet den Standard-Style, und InternKey identifiziert gleiche Payloads, damit der Speicher sie deduplizieren kann |
| Controls, drawings, and sparklines | TXLSXWorksheet.FormControls ist eine TXLSXFormControls -Sammlung von TXLSXFormControl -Objekten — jedes legt ControlType, Caption, MacroName, LinkedCellund seine Items -Liste offen — typisiert über TXLSXFormControlType, mit TXLSXFormControlItems für den Item-Text je Steuerelement; Zeichnungsobjekte melden ihre Art über TXLSDrawingObjectKind, und Sparkline-Gruppen legen Achsenskalierung und Verhalten leerer Zellen über TXLSXSparklineAxisType und TXLSXSparklineEmptyCells |
| Charts | Plot-Gruppen und Datenreihen klassifizieren Balkengruppierung, Markersymbole und Datenlabel-Positionen mit den Enums TXLSXChartBarGrouping, TXLSXChartMarkerSymbolund TXLSXChartDataLabelPos ; die Diagrammmodell-Knoten teilen die Basisklasse TXLSXChartMutable , und TXLSXChartLayoutResolver.ResolveChart füllt ein TXLSXChartResolvedLayout aus TXLSXChartLayoutRect -Rechtecken für Diagramm, Titel, Legende, Plot und Achsentitel |
| Pagination keep blocks | KeepRowsTogether / KeepColumnsTogether auf der XLSX-Pagination-Oberfläche pflegen TXLSXKeepTogetherRange - und TXLSXKeepTogetherCols -Datensätze, damit die Seitenumbruch-Planung einen Block auf einer Seite hält |
| Diagnostics | TXLSXWorksheet.CheckDataValidations liefert TXLSXValidationIssue -Datensätze (Zelle, Überprüfungsindex, Grund); TXLSXWorkbook.ScanUnknownFunctions liefert TXLSXUnknownFunctionInfo -Datensätze, die nicht implementierte Aufrufe in Zellen und definierten Namen lokalisieren; TXLSXCells.GetStorageStatistics füllt einen TXLSXCellStorageStatistics -Datensatz mit Zell-, Zeilenblock-, Payload-Byte- und Styled-Blank-Bilanz; TXLSXWorksheet.BuildRowMajorCellOrder liefert einen TXLSXRowMajorOrder , der die speicherinterne Traversierungsordnung der befüllten Zellen beschreibt |
TXLSXWorkbook.FormulaLocale liest oder schreibt das Locale-Tag, das beim Parsen und Serialisieren von Formeln verwendet wird — Spiegelbild der Formel-Locale-Behandlung der klassischen ArbeitsmappeTabellen-Slicer (Excel 2013+) werden über zwei Sammlungen geschrieben und ausgelesen: TXLSXWorksheet.Slicers hält die Slicer-Ansichten pro Blatt (TXLSXSlicer), und TXLSXWorkbook.SlicerCaches hält die gemeinsamen Datenquellen (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) baut einen Slicer komplett: Er registriert oder wiederverwendet den zugrunde liegenden Cache namens Slicer_<column>, reserviert den passenden #N/A -definierten Namen, schreibt die slicerList -Erweiterung des Arbeitsblatts und verankert die Ansicht mit einem Markup-Compatibility-Zeichnungsanker, dessen Fallback-Hinweis ältere Excel-Versionen abdeckt; die zweite Überladung pinnt das Ansichtsrechteck, sonst wird ein Standardanker rechts der Tabelle verwendet
Geladene Ansichten und Caches werden beim Öffnen zurückgeparst, gemeinsame Caches werden über Ansichten hinweg wiederverwendet, und das Löschen der letzten Ansicht eines Caches verwirft den Cache; unbekannte Attribute und Erweiterungen behalten ihre ursprüngliche Repräsentation, während Tabellen-Bindings gespeicherten Tabellen-IDs folgen und unterstützte Pivot-Verbindungen gespeicherten Blatt-Identitäten folgen
Unterstützte importierte Non-OLAP-Pivot-Caches legen typisierte Member-Inspektion und abgesicherte Auswahländerungen über IsNonOlapPivot, ItemCount, ItemCacheIndex, ItemSelected, SetSelectedItems und ClearSelection offen; siehe Pivot-Slicer-Auswahl für Shared-View-Verhalten, Fehleratomizität und die Grenze der importierten Same-Field-Maske
Nicht unterstützte Pivot-Caches behalten ihre ursprünglichen Bytes; eine geladene Slicer-Ansicht ist zusätzlich als Zeichnungsobjekt über TXLSXDrawingObject.Slicer erreichbar
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;
Siehe Arbeitsmappen-Infrastruktur-API für E/A-Callbacks, Serializer-Stilpools, verschlüsselte Dateiverifikation und den Arbeitsbereichs-Abhängigkeitsgraphen