Diese Seite behandelt öffentliche klassische XLS-API-Elemente, die zu lxHandle, lxDataToXLS und lxGridToXLS gehören
IXLSWorkbook-Berechnungseigenschaften
property CalculationMode: LongWord;
property FormulaArrayMemoryLimit: Int64;
property EnableIteration: Boolean;
property MaxIterations: LongWord;
property MaxIterationChange: Double;
property RecalcOnSave: Boolean;
property UseFullPrecision: Boolean;
| CalculationMode |
Steuert den mit der Datei gespeicherten Berechnungsmodus der Arbeitsmappe |
| FormulaArrayMemoryLimit |
Begrenzt den Speicher, den generierte Formel-Arrays wie MUNIT allozieren, steht standardmäßig auf 64 MiB und klemmt Werte unterhalb eines Double-Elements ab |
| EnableIteration |
Aktiviert die iterative Berechnung für Zirkularformeln |
| MaxIterations |
Maximale Anzahl Gauss-Seidel-Durchläufe für jede Strongly Connected Component von Zirkularreferenzen |
| MaxIterationChange |
Maximal akzeptierter numerischer Delta-Wert, bevor eine Zirkularreferenz-Komponente die Iteration beendet |
| RecalcOnSave |
Fordert die Neuberechnung der Arbeitsmappe an, wenn Excel die Datei speichert |
| UseFullPrecision |
Hält die volle Formelgenauigkeit bei; wenn deaktiviert, werden Formel- und What-If-Datentabellen-Caches auf ihre effektiv angezeigte numerische Genauigkeit gerundet, bevor Abhängige sie lesen |
Formeleingabevalidierung
property IXLSWorkbook.FormulaEntryPolicy: TXLSFormulaEntryPolicy;
function TXLSWorksheet.ValidateFormulaEntry(Row, Col: Integer;
const Formula: WideString): TXLSFormulaEntryValidationResult;
Der gemeinsame Validierungsvertrag klassifiziert leere Eingaben, unbekannte Funktionen, unbekannte Namen, Syntaxfehler, ungültige Koordinaten und Formeln, die vom Classic-XLS-Ziel nicht dargestellt werden können, ohne dabei den Arbeitsblattzustand zu ändern; siehe
Richtlinie zur Formeleingabevalidierung
IXLSWorkbook-Renderkalibrierung
property RenderCalibration: TXLSRenderCalibration;
function CaptureRenderCalibration: TXLSRenderCalibration;
procedure ResetRenderCalibration;
function CreateRenderGeometry(ABackend: TXLSRenderGeometryBackend;
ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
Die Zuweisung des gesamten Datensatzes validiert alle sechs Felder, bevor die Arbeitsmappe geändert wird, CaptureRenderCalibration liefert einen unabhängigen Wert-Snapshot für genau eine Mess- oder Exportoperation, und ResetRenderCalibration stellt die Standardwerte 1/1/1/1/100/96 wieder her
Diese rein zur Laufzeit vorhandene Konfiguration wird nicht in die XLS-Datei serialisiert und ändert weder Zeilenhöhen noch Spaltenbreiten des Arbeitsblatts
CreateRenderGeometry kopiert die aktuelle Kalibrierung in einen operationseigenen Dienst und bindet seine Cache-Identität an die aktuelle Arbeitsmappengeneration und das ausgewählte Backend; spätere Kalibrierungsänderungen der Arbeitsmappe können einen bestehenden Dienst nicht mehr verändern
Bereichs-AutoFit und jeder TXLSPaginationModel.Build-Aufruf erfassen die Arbeitsmappenkalibrierung genau einmal; AutoFit ist der einzige Konsument, der absichtlich passende Maße zurückschreibt, während die Paginierung jede gespeicherte Zeilenhöhe und Spaltenbreite erhält
IXLSWorkbook-Dokumenteigenschaften
property Title: WideString;
property Subject: WideString;
property Author: WideString;
property Keywords: WideString;
property Comments: WideString;
property Company: WideString;
property Manager: WideString;
Diese Eigenschaften lesen und schreiben die Arbeitsmappen-Zusammenfassungsinformationsfelder, die mit der klassischen XLS-Datei gespeichert werden
IXLSWorkbook Close-Methode
function Close: Integer;
Schließt das Arbeitsmappen-Objekt und gibt den von der Arbeitsmappe genutzten Inhalt des klassischen XLS-Objektmodells frei
property MetadataOnly: Boolean;
property SelectedSheets: TStringList;
property IncompleteLoad: Boolean;
| MetadataOnly |
Liest, vor Open gesetzt, nur Arbeitsmappen-Metadaten und Blattdeskriptoren und überspringt Zelldaten |
| SelectedSheets |
Liste der beim Öffnen der Arbeitsmappe zu ladenden Blattnamen; eine leere Liste lädt jedes Blatt |
| IncompleteLoad |
True nach Open, wenn Zelldaten übersprungen wurden, weil MetadataOnly oder SelectedSheets verwendet wurde |
Eine mit MetadataOnly oder nicht-leerem SelectedSheets geöffnete Arbeitsmappe lässt sich nicht speichern; Save löst einen Fehler aus, bis die Arbeitsmappe ohne diese Optionen erneut geöffnet wird
TXLSColumnInfo Collapsed-Zustand
property TXLSWorksheet._ColumnInfo: TXLSColumnInfoList;
property TXLSColumnInfo.Collapsed: Boolean;
property TXLSRowInfo.Collapsed: Boolean;
property TXLSColumnInfoList.Collapsed[Index: Integer]: Boolean;
Collapsed legt den BIFF-Spalten-Gliederungsmarker unabhängig von Hidden und OutlineLevel offen. Der Listenindex ist ein 0-basierter klassischer XLS-Spaltenindex. Fehlende Spalten lesen sich als False, und die Zuweisung von False an eine fehlende Spalte alloziert keine Metadaten. Spaltenformat-Kopien, Arbeitsblattkopien und Speichern-und-Erneut-Öffnen-Zyklen bewahren den Marker
Die zugrunde liegenden Speicher-Accessoren sind für die Inspektion der Arbeitsmappe auf niedriger Ebene öffentlich. TXLSRowInfo meldet MinCol und MaxCol (die abgedeckte 1-basierte Spaltenspanne), CustomHeight und CustomFormat (ob eine explizite Höhe oder ein XF-Index gespeichert ist) sowie XFIndexSet; TXLSColumnInfo.isEqual vergleicht zwei Spaltenmetadaten-Einträge Feld für Feld
TXLSColumnInfoList legt ColCount, MinCol, MaxCol, StdWidth und MaxOutlineLevel für Grenz- und Standardbreiten-Diagnostik offen, CalcMaxOutLineLevel berechnet den gecachten maximalen Gliederungslevel nach direkten Metadaten-Änderungen neu, CopyColFormat klont einen Spalteneintrag auf einen anderen Index, DeleteCol entfernt einen Eintrag, und FindNextColToStore durchläuft gespeicherte Einträge für Schreiber von BIFF-COLINFO-Datensätzen und meldet die nächste Spanne in den MinCol-/MaxCol-Out-Parametern
TXLSWorksheet-Gliederungsknoten-Methoden
function TryGetOutlineNode(AAxis: TXLSOutlineAxis; ANodeIndex: Integer; out ANode: TXLSOutlineNode): Boolean;
function SetOutlineNodeCollapsed(AAxis: TXLSOutlineAxis; ANodeIndex: Integer; ACollapsed: Boolean; AChildMode: TXLSOutlineChildMode = xocPreserve): Boolean;
procedure SetOutlineDisplayLevel(AAxis: TXLSOutlineAxis; ADisplayLevel: Integer; AChildMode: TXLSOutlineChildMode = xocPreserve);
Diese Methoden passen die klassischen Zeilen- und Spaltenmetadaten an das gemeinsame dünn besetzte Gliederungsmodell an, leiten den angeforderten Summenknoten aus seiner Gliederungsrichtung ab und wenden komprimierte Hidden- und Collapse-Änderungen an, ohne ungenutzte Arbeitsblattkoordinaten abzufragen
ANodeIndex ist die 1-basierte physische Summenzeile oder -spalte, ADisplayLevel folgt der 1-basierten Konvention der Gliederungsschaltflächen, und xocPreserve hält verschachtelte Child-Collapse-Marker standardmäßig unabhängig
TXLSWorksheet-Bereich- und Drucktitel-Methoden
function ThawPanes(Y, X: Single; RowTop, ColLeft: Word): Integer;
function SplitPanes(Width, Height: Single): Integer;
function UnsplitPanes: Integer;
function GetSelectedAreas(APane: TXLSPanePosition; out ActiveAreaIndex: Integer): TXLSSelectedAreas;
function SelectAreas(APane: TXLSPanePosition; const Areas: array of WideString; ActiveAreaIndex: Integer = 0): Boolean;
function TryGetWindowScroll(APane: TXLSPanePosition; out ARow, ACol: Integer): Boolean;
function ScrollWindow(APane: TXLSPanePosition; ARow, ACol: Integer): Boolean;
function RepeatRows(FirstRow, LastRow: Word): Integer;
function RepeatColumns(FirstCol, LastCol: Word): Integer;
ThawPanes, SplitPanes und UnsplitPanes steuern den geteilten Bereichszustand, während RepeatRows und RepeatColumns Drucktitel-Zeilen oder -Spalten für das Tabellenblatt festlegen
Aufeinanderfolgende BIFF-Auswahl-Datensätze für einen Fensterbereich bilden eine einzige logische Gruppe, bearbeitete Gruppen werden in Blöcken von höchstens 1369 Bereichen geschrieben, und Arbeitsblattkopien behalten jede Fensterbereichsgruppe
Zeilen- und spaltenweite strukturelle Änderungen bilden jede gültige Fensterbereichsgruppe neu ab, bewahren dabei geordnete Überlebende und die Identität des aktiven Bereichs und verwenden deterministische Nachfolger-, Vorgänger- und Grenzzellen-Fallbacks
Fehlerhafte oder widersprüchliche Auswahl-Datensätze bleiben opak, werden beim Speichern byte-identisch wiedergegeben und melden xlsDiagnosticSelectionRecordInvalid, statt nur teilweise vertrauenswürdigen typisierten Zustand offenzulegen
TryGetWindowScroll und ScrollWindow legen den gemeinsamen 1-basierten Scroll-Vertrag für vier Fensterbereiche offen und bilden die obere und linke Achse auf Window2 sowie die untere und rechte Achse auf Pane ab
TXLSWorksheet typisierte Datenvalidierungsmethoden
function AddWholeNumberValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddDecimalValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddDateValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddTimeValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddTextLengthValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddCustomValidation(ARange: WideString; const AFormula: WideString): TDataValidation;
Jede Hilfsfunktion erstellt eine typisierte Datenvalidierungsregel für ARange und gibt die erstellte TDataValidation-Instanz zurück, damit Eingabeaufforderung, Fehler und Leerzeichen-Behandlungsoptionen angepasst werden können
TXLSWorksheet Pivot-Tabellen-Elemente
property PivotTables: TXLSPivotTables;
function AddPivotTable(const SourceRangeA1: WideString; DestRow, DestCol: Integer; const Name: WideString): TXLSPivotTable;
function PivotSetDataFieldFormat(DataField: TXLSPivotDataField; const FormatStr: WideString): Word;
Verwenden Sie
AddPivotTable, um eine typisierte Pivot-Tabelle aus einem Quellbereich zu erstellen, und verwenden Sie dann
PivotTables und
PivotSetDataFieldFormat, um das generierte Modell zu untersuchen oder zu formatieren. Siehe
Klassische XLS Pivot-Tabellen-API
function SetArrayFormula(const Formula: WideString): Integer;
function XFIndex: Integer;
property FirstRow: Word;
property LastRow: Word;
property FirstCol: Byte;
property LastCol: Byte;
SetArrayFormula weist dem Bereich eine Arrayformel zu. FirstRow, LastRow, FirstCol und LastCol geben die gespeicherten 1-basierten Bereichsgrenzen zurück, während XFIndex den effektiven klassischen XLS-Formatindex für den Bereich liefert
IXLSRange Transfer-Hilfsfunktionen
procedure PasteFrom(SrcRange: TXLSRange; PasteMode: LongWord; CopyMode: Boolean);
procedure ShiftTo(Row: Word; Col: Byte);
procedure ExtendRange;
procedure ContractRange;
PasteFrom wendet Zelleninhalte aus einem anderen klassischen XLS-Bereich im ausgewählten Einfügemodus an. ShiftTo verschiebt ein Bereichsobjekt, während ExtendRange und ContractRange das gespeicherte Rechteck vor Bereichsoperationen anpassen, die erweiterte oder normalisierte Grenzen benötigen
IXLS-Zeilen- und Spaltenbereich-Schnittstellen
interface IXLSRowsRange = interface(IXLSRange)
property Item[Row: Integer]: IXLSRowRange;
property Hidden: OleVariant;
property Count: LongWord;
procedure AutoFit(Columns: Boolean = False);
interface IXLSRowRange = interface(IXLSRange)
property Item[Col: Integer]: IXLSColRange;
property Hidden: OleVariant;
property Count: LongWord;
procedure AutoFit(Columns: Boolean = False);
interface IXLSColsRange = interface(IXLSRange)
property Item[Col: Integer]: IXLSColRange;
property Hidden: OleVariant;
property Count: LongWord;
procedure AutoFit(Columns: Boolean = True);
procedure Group(Rows: Boolean = False);
procedure UnGroup(Rows: Boolean = False);
property OutlineLevel: Integer;
interface IXLSColRange = interface(IXLSRange)
property Item[Row: Integer]: IXLSRowRange;
property Hidden: OleVariant;
property Count: LongWord;
procedure AutoFit(Columns: Boolean = True);
procedure Group(Rows: Boolean = False);
procedure UnGroup(Rows: Boolean = False);
property OutlineLevel: Integer;
IXLSRowsRange, IXLSRowRange, IXLSColsRange und IXLSColRange werden von IXLSRange.Rows, IXLSRange.Columns, IXLSRange.EntireRow und IXLSRange.EntireColumn zurückgegeben. Sie behalten die normale IXLSRange-Bearbeitungsoberfläche bei und ergänzen sie um indizierten Zeilen- oder Spaltenzugriff, Ausgeblendet-Status-Steuerung, Zählungen, AutoFit und Gliederungsgruppierung, wo die Bereichsrichtung dies unterstützt
IXLSHyperLink DisplayText-Eigenschaft
property DisplayText: WideString;
DisplayText liest oder ändert den sichtbaren Text, den Excel für einen klassischen XLS-Hyperlink anzeigt, getrennt von der Zieladresse und dem Bildschirmtipp
TXLSWorksheets ID-Mapping-Eigenschaften
property IndexByID[SheetID: Integer]: Integer;
property IDByName[SheetName: WideString]: Integer;
property NameByID[SheetID: Integer]: WideString;
Diese schreibgeschützten Nachschlage-Eigenschaften ordnen die interne Blatt-ID, den aktuellen Tabellenblatt-Index und den sichtbaren Tabellenblattnamen einander zu. Sie sind nützlich, wenn Formeln, definierte Namen oder Datensätze, die auf Blätter durch gespeicherte Bezeichner statt durch die aktuelle Tab-Reihenfolge verweisen, erhalten bleiben sollen
TXLSWorksheet SheetTypeRaw-Eigenschaft
property SheetTypeRaw: Byte;
SheetTypeRaw bewahrt den rohen klassischen XLS-BoundSheet8.dt-Wert beim Laden und Speichern von Arbeitsmappen, sodass Makro-, VBA-, Tabellenblatt-, Dialog- und andere Blatttyp-Datensätze ohne Vereinheitlichung zu einem Standard-Tabellenblatt-Tab übertragen werden können
IXLSPageSetup erweiterte Druckeigenschaften
property PrintNotesAtEnd: Boolean;
property UseFirstPageNumber: Boolean;
property FirstPageNumber: Integer;
property PrintCellErrors: LongWord;
property PrintResolution: LongWord;
property PrintVResolution: LongWord;
property Copies: LongWord;
property HasSetupRecord: Boolean; read only
property PrinterSettingsInitialized: Boolean; read only
property PrinterDriverData: TBytes;
property HasPrinterDriverData: Boolean; read only
procedure ClearPrinterDriverData;
Diese Eigenschaften bewahren erweiterte Seiteneinrichtungsoptionen wie am Ende gedruckte Kommentare, eine benutzerdefinierte erste Seitennummer, gedruckte Zellfehlerdarstellung, Druckerauflösung und Kopienanzahl
HasSetupRecord meldet, ob ein geladenes klassisches XLS-Arbeitsblatt einen BIFF-Setup-Datensatz enthält, während PrinterSettingsInitialized meldet, ob dessen Papierformat, Skalierung, Ausrichtung, Auflösung und Kopienanzahl durch diesen Datensatz definiert sind
Das Speichern eines unveränderten Arbeitsblatts bewahrt einen fehlenden Setup-Datensatz und einen vorhandenen Datensatz byte-identisch; das Ändern eines Seiteneinrichtungsfelds erzeugt den Datensatz bei Bedarf, und das Ändern eines druckerabhängigen Felds initialisiert die Druckereinstellungen
PrinterDriverData liest oder ersetzt das opake BIFF-PLS-Druckertreiber-Payload, HasPrinterDriverData unterscheidet ein fehlendes Payload, und ClearPrinterDriverData entfernt es, ohne typisierte Seiteneinrichtungsfelder zu ändern
Getter- und Setter-Byte-Arrays werden kopiert, sodass Aufrufer und Arbeitsblattkopien unabhängiges Eigentum haben; Classic-Payloads müssen das erforderliche reservierte Zwei-Byte-Präfix enthalten und dürfen 1 MiB nicht überschreiten
SaveXLSWorkbookAsXLSX überträgt typisierte Seiteneinrichtungswerte und das opake Druckertreiber-Payload unabhängig voneinander in das XLSX-Modell; typisierte Standardfelder bleiben maßgeblich, wenn private Treiber-Bytes doppelte Drucker-Defaults enthalten
IXLSFont Zeichensatzeigenschaften
property CharSet: Byte;
property Family: Byte;
CharSet und Family geben die Zeichensatz- und Familien-Bytes der klassischen XLS-Schriftart für Aufrufer preis, die gebietsschema-spezifische Schriftart-Metadaten erhalten müssen
TDataToXLS und TGridToXLS Abort-Methoden
procedure TDataToXLS.Abort;
procedure TGridToXLS.Abort;
Rufen Sie Abort aus Export-Ereignishandlern auf, wenn ein laufender Datensatz- oder Rasterexport vor Abschluss gestoppt werden muss
Klassische XLS-Referenz-Hilfsfunktionen
function GetCellRef(Cell: String; var Row, Col: Word): Integer;
function GetCellRange(CellRange: String; var StartRow, StartCol, EndRow, EndCol: Word): Integer;
function EncodeCellRef(Row, Col: Word): String;
function EncodeCellRange(StartRow, StartCol, EndRow, EndCol: Word): String;
function Width2Excel(Value: Single): Word;
function Excel2Width(Value: Word): Single;
function Height2Excel(Value: Single): Word;
function Excel2Height(Value: Word): Single;
function ColIndexToColName(Index: Integer): String;
function ColNameToColIndex(Name: String): Integer;
Diese Hilfsfunktionen konvertieren klassische A1-Referenzen, Bereiche, Spaltenbeschriftungen, Zeilen- oder Spaltenabmessungen und von dem klassischen XLS-Objektmodell verwendete Excel-Speichereinheiten