.xlsx)-Arbeitsmappe. Deklariert in
lxHandleX. Enthält eine TXLSXSheets
-
Sammlung und stellt SaveAs / Open -Einstiegspunkte
für OOXML-Arbeitsmappen, CSV / TSV-Import und OpenDocument Spreadsheet
(.ods)-Lese-/Schreib-Workflows bereit
type
TXLSXFileFormat = (xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet,
xlsxOpenXMLTemplate, xlsxOpenXMLMacroEnabledTemplate, xlsxExcelBinaryWorkbook);
TODSExportOptions = class
constructor Create;
property Generator: WideString;
property IncludeCharts: Boolean;
property IncludeImages: Boolean;
end;
TXLSXWorkbook = class
constructor Create;
destructor Destroy; override;
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload;
function CreateLoadedCellCursor(AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
function CreateReadOnlyView: IXLSReadOnlyWorkbookView;
property RenderCalibration: TXLSRenderCalibration;
function CaptureRenderCalibration: TXLSRenderCalibration;
procedure ResetRenderCalibration;
function CreateRenderGeometry(ABackend: TXLSRenderGeometryBackend;
ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
function SaveAs(const FileName: WideString): Integer; overload;
function SaveAs(const FileName: WideString; FileFormat: TXLSXFileFormat): Integer; overload;
function SaveAs(Stream: TStream): Integer; overload;
function SaveAs(Stream: TStream; FileFormat: TXLSXFileFormat): Integer; overload;
function GetConversionReport(ATarget: TXLSConversionTarget): TXLSConversionReport;
function SaveAsChecked(Stream: TStream; FileFormat: TXLSXFileFormat;
AllowLossy: Boolean = False): Integer; overload;
function SaveAsChecked(const FileName: WideString; FileFormat: TXLSXFileFormat;
AllowLossy: Boolean = False): Integer; overload;
function Open(const FileName: WideString): Integer; overload;
function Open(const FileName: WideString; const Password: WideString): Integer; overload;
function Open(Stream: TStream): Integer; overload;
function OpenCSV(const FileName: WideString): Integer; overload;
function OpenCSV(const FileName: WideString; ASeparator: WideChar;
ADetectTypes: Boolean): Integer; overload;
function OpenCSV(Stream: TStream): Integer; overload;
function OpenCSV(Stream: TStream; ASeparator: WideChar;
ADetectTypes: Boolean): Integer; overload;
function OpenODS(const FileName: WideString): Integer; overload;
function OpenODS(Stream: TStream): Integer; overload;
function SaveAsODS(const FileName: WideString): Integer; overload;
function SaveAsODS(Stream: TStream): Integer; overload;
function SaveAsODS(const FileName: WideString; Options: TODSExportOptions): Integer; overload;
function SaveAsODS(Stream: TStream; Options: TODSExportOptions): Integer; overload;
function GetODSSheetNames(const FileName: WideString; AList: TStrings): Integer; overload;
function GetODSSheetNames(Stream: TStream; AList: TStrings): Integer; overload;
function GetSheetNames(const FileName: WideString; AList: TStrings): Integer; overload;
function GetSheetNames(Stream: TStream; AList: TStrings): Integer; overload;
function SaveAsCSV(const FileName: WideString): Integer; overload;
function SaveAsCSV(const FileName: WideString; SheetIndex: Integer; Delimiter: WideChar): Integer; overload;
function SaveAsCSV(Stream: TStream): Integer; overload;
function SaveAsCSV(Stream: TStream; SheetIndex: Integer; Delimiter: WideChar): Integer; overload;
function SaveAsHTML(const FileName: WideString): Integer; overload;
function SaveAsHTML(const FileName: WideString; Options: TXLSXHtmlExportOptions): Integer; overload;
function SaveAsHTML(const FileName: WideString; SheetIndex: Integer): Integer; overload;
function SaveAsHTML(const FileName: WideString; SheetIndex: Integer; Options: TXLSXHtmlExportOptions): Integer; overload;
function SaveAsHTML(Stream: TStream): Integer; overload;
function SaveAsHTML(Stream: TStream; Options: TXLSXHtmlExportOptions): Integer; overload;
function SaveAsHTML(Stream: TStream; SheetIndex: Integer): Integer; overload;
function SaveAsHTML(Stream: TStream; SheetIndex: Integer; Options: TXLSXHtmlExportOptions): Integer; overload;
function SaveAsRTF(const FileName: WideString): Integer; overload;
function SaveAsRTF(const FileName: WideString; SheetIndex: Integer): Integer; overload;
function SaveAsRTF(Stream: TStream): Integer; overload;
function SaveAsRTF(Stream: TStream; SheetIndex: Integer): Integer; overload;
// AES encryption (ECMA-376 Standard Encryption) write path.
// OpenEncrypted still raises for encrypted packages.
function SaveAsEncrypted(const FileName, APassword: WideString): Integer;
function OpenEncrypted(const FileName, APassword: WideString): Integer;
function CanReadEncrypted(const FileName: WideString): Boolean;
function Calculate(const Formula: WideString): Variant;
function CalculateAndVerify: Integer; overload;
function CalculateAndVerify(out AMismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
property OnUserFunction: TXLSUserFunctionEvent;
property OnUserFunctionEx: TXLSUserFunctionExEvent;
property AllowUnsafeFormulaCallbacks: Boolean;
// Document properties (docProps/core.xml + docProps/app.xml).
property Title, Author, Subject, Keywords, Description,
Category, LastModifiedBy, Company,
Application, AppVersion: WideString;
property Created, Modified: TDateTime;
// Workbook protection (16-bit legacy hash).
procedure ProtectWorkbook; overload;
procedure ProtectWorkbook(const APassword: WideString); overload;
procedure ProtectWorkbook(const APassword: WideString; ALockStructure, ALockWindows: Boolean); overload;
procedure UnProtectWorkbook;
property IsWorkbookProtected: Boolean;
property LockStructure, LockWindows: Boolean;
// VBA project payload (round-trips byte-for-byte). Workbook is saved
// with macro-enabled content type when HasVbaProject is True.
procedure LoadVbaProjectFromFile(const AFileName: WideString);
procedure ClearVbaProject;
function HasVbaProject: Boolean;
property VbaProjectDefined: Boolean;
property VbaProject: AnsiString;
property ParsedVBAProject: TXLSVBAProject;
// Unknown package and workbook extension preservation
procedure ClearUnsupportedParts;
function UnsupportedPartCount: Integer;
function UnsupportedPartBytes: Int64;
property PreserveUnsupportedParts: Boolean;
// Chart sheet helper — creates a sheet flagged IsChartSheet and
// seeds Charts[0] with a default full-page anchor.
function AddChartSheet(const AName: WideString;
AChartType: TXLSXChartType; const ATitle: WideString): TXLSXWorksheet;
// Streaming SaveAs path (TXLSWideStringBuilder + one sheet at a time).
property StreamingWrite: Boolean;
// Streaming parallel Open path
property ParallelParse: Boolean;
property ParallelParseThreads: Integer;
// Workbook-level collections.
property ActiveSheet: Integer;
property Minimized: Boolean;
property WindowHidden: Boolean;
property ShowHorizontalScroll: Boolean;
property ShowVerticalScroll: Boolean;
property ShowSheetTabs: Boolean;
property XWindow: Integer;
property YWindow: Integer;
property WindowWidth: Integer;
property WindowHeight: Integer;
property TabRatio: Integer;
property FirstSheet: Integer;
property AutoFilterDateGrouping: Boolean;
property Date1904: Boolean;
// Workbook calculation policy
property Iterate: Boolean;
property IterateCount: Integer;
property IterateDelta: Double;
property CalcId: Integer;
property FullCalcOnLoad: Boolean;
property CalcMode: WideString;
property RefMode: WideString;
property ForceFullCalc: Boolean;
property CalcCompleted: Boolean;
property CalcOnSave: Boolean;
property FullPrecision: Boolean;
property ConcurrentCalc: Boolean;
property ConcurrentManualCount: Integer;
function CreateWorkspaceWorkbook: IXLSWorkspaceWorkbook;
procedure RegisterExternalWorkbook(const AWorkbookName: WideString;
AWorkbook: TXLSXWorkbook);
procedure UnregisterExternalWorkbook(const AWorkbookName: WideString);
property SourceFormat: TXLSXFileFormat;
property IndexedColor[Index: Integer]: LongWord;
function NearestIndexedColor(AArgb: LongWord;
out AMatch: TXLSNearestIndexedColorMatch): Boolean;
function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;
function BuildBiffPalettePlan: TXLSBiffPalettePlan;
function ApplyBiffPalettePlan(
const APlan: TXLSBiffPalettePlan): Boolean;
function HasCustomIndexedColor(Index: Integer): Boolean;
function CustomIndexedColorCount: Integer;
procedure ResetIndexedColors;
property Sheets: TXLSXSheets;
property Fonts: TXLSXFonts;
property Fills: TXLSXFills;
property Borders: TXLSXBorders;
property NumberFormats: TXLSXNumberFormats;
property Alignments: TXLSXAlignments;
property DefinedNames: TXLSXDefinedNames;
property ExternalLinks: TXLSXExternalLinks;
property ExternalWorkspace: TXLSWorkbookWorkspace;
end;
| Sheets | Arbeitsblatt-Auflistung. Siehe TXLSXSheets |
| Fonts | Schriftartenpalette auf Arbeitsmappenebene. Zellen wählen eine Schriftart durch Setzen von TXLSXCell.FontIndex auf einen 1-basierten Index in dieser
Auflistung. Siehe TXLSXFont / TXLSXFonts |
| Fills | Füllungspalette auf Arbeitsmappenebene. Zellen wählen eine Füllung durch Setzen von TXLSXCell.FillIndex auf einen 1-basierten Index in dieser
Auflistung. Siehe TXLSXFill / TXLSXFills |
| Borders | Rahmenpalette auf Arbeitsmappenebene. Zellen wählen einen Rahmen
durch Setzen von TXLSXCell.BorderIndex auf einen 1-basierten Index in
dieser Auflistung. Siehe TXLSXBorder / TXLSXBorders |
| NumberFormats | Palette benutzerdefinierter Zahlenformate auf Arbeitsmappenebene. Zellen
wählen ein Format durch Setzen von TXLSXCell.NumberFormatIndex auf
einen 1-basierten Index in dieser Auflistung. Siehe
TXLSXNumberFormat / TXLSXNumberFormats |
| DefinedNames | Benannte Bereiche auf Arbeitsmappenebene (arbeitsmappengebunden oder blattgebunden). Siehe TXLSXDefinedName / TXLSXDefinedNames |
| Calculate | Kompiliert und wertet eine Excel-Formelzeichenfolge gegen das aktive Blatt aus; ein führendes = wird akzeptiert
Zellbezüge, Bereiche, in referenzierten Zellen gespeicherte Formeln, blattübergreifende Bezüge, benannte Bereiche sowie unterstützte Text-, Datums-, Arbeitstags-, Technik/Basis-Konvertierungs-, bitweise, statistische, Aggregat- und Mathefunktionen werden durch die gemeinsam genutzte HotXLS-Formelauswertung berechnet
Siehe OnUserFunction für den Umgang mit benutzerdefinierten oder nicht unterstützten Funktionen |
| CreateLoadedCellCursor | Erstellt einen Cursor mit konstantem Zustand in Zeilen-Major-Ordnung über gespeicherte XLSX-Werte und Formeln, mit einer Überladung, die unabhängig gestylte Leerzellen zusätzlich als xlckBlankausgibt. Sparse-Blöcke und gepackter Speicher werden durchlaufen, ohne die gepackte Repräsentation zu materialisieren. Siehe CreateLoadedCellCursor-Methode |
| CreateReadOnlyView | Erstellt eine Ansicht mit konstanter Zugriffszeit über das gemeinsam genutzte Modell mit lokalem aktiven Blatt, Snapshot nach Wert, zwischengespeicherten Formelergebnissen, opt-in isolierter Formelauswertung, direkten gepackten Zell-Lesezugriffen, referenzgezählter Lebensdauer über IXLSXWorkbookOwnerund Fail-fast-Schreibausschluss; die IXLSReadOnlyWorkbookView meldet zudem SheetCount für Aufrufer, die Blätter aufzählen, ohne das Arbeitsmappenmodell zu berühren. Siehe CreateReadOnlyView-Methode |
| SaveSemanticSnapshot, ComputeSemanticHash | Streamt eine versionierte kanonische Repräsentation der Arbeitsmappensemantik oder berechnet deren kleingeschriebenen SHA-256, ohne den vollständigen Snapshot zu materialisieren. Siehe Semantic-Snapshot- und Hash-Methoden |
| RenderCalibration, CaptureRenderCalibration, ResetRenderCalibration | Weist validierte Render-Kalibrierung atomar zu, erfasst einen unabhängigen Wert-Snapshot für eine Operation oder stellt die Standardwerte wieder her; die Laufzeitkonfiguration wird nicht serialisiert und ändert selbst keine Arbeitsblattzeilen oder -spalten. Siehe Render-Kalibrierungswerte und -Snapshots |
| CreateRenderGeometry | Erstellt einen operations-eigenen Geometrie- und Schriftmessdienst mit unveränderlicher Kalibrierung, Arbeitsmappen-Generierungs- und Backend-Identität sowie einem begrenzten lokalen Cache; AutoFit erfasst einen Dienst je Operation, die Paginierung einen je Build, ohne Arbeitsblattabmessungen zu schreiben. Siehe Render-Geometrie und Schriftmessung |
| OnUserFunction, OnUserFunctionEx | Rückruf, der von Calculate aufgerufen wird, wenn eine
Formel eine benutzerdefinierte oder nicht unterstützte Funktion aufruft. Siehe
OnUserFunction / OnUserFunctionEx-Rückruf |
| AllowUnsafeFormulaCallbacks | Steht standardmäßig auf false und verhindert, dass gefährliche externe oder makroartige Funktionsnamen vor der Argumentauswertung Benutzerfunktions-Handler erreichen. Siehe Sicherheitsrichtlinie für Callbacks |
| GetSheetNames(FileName, AList), GetSheetNames(Stream, AList) | Liest xl/workbook.xml und hängt
Arbeitsblattnamen in Arbeitsmappenreihenfolge an AList an, ohne
Arbeitsblatt-XML zu laden. Die Stream-Überladung erwartet einen vollständigen XLSX-Paket-Stream
Gibt die Anzahl der gelesenen Namen zurück oder
-1 , wenn das Paket nicht geöffnet werden kann |
| Alignments | Zellenausrichtungspalette auf Arbeitsmappenebene. Zellen wählen
einen Eintrag durch Setzen von TXLSXCell.AlignmentIndex auf einen
1-basierten Index in dieser Auflistung. Siehe
TXLSXAlignment |
| Document properties | Title, Author, Subject, Keywords, Description,
Category, LastModifiedBy, Company, Application, AppVersion,
Created, Modified. Das Setzen eines dieser Werte füllt
docProps/core.xml + docProps/app.xml beim
Aufruf von SaveAs (andernfalls behält die Arbeitsmappe den minimalen Paketsatz) |
| ProtectWorkbook / UnProtectWorkbook | Arbeitsmappenschutz-Umschalter mit optionalem
16-Bit-Legacy-Kennwort-Hash sowie den Flags LockStructure /
LockWindows . Wird als
<workbookProtection> in xl/workbook.xml abgebildet |
| LoadVbaProjectFromFile / VbaProject / HasVbaProject / VbaProjectDefined | LoadVbaProjectFromFile importiert einen rohen vbaProject.bin -Payload; VbaProject stellt die Bytes bereit; HasVbaProject und das schreibgeschützte VbaProjectDefined geben beide an, ob ein Payload vorhanden ist. Beim Speichern mit der Erweiterung .xlsm werden Makros von Excel aktiviert |
| ParsedVBAProject | Schreibgeschützte geparste Ansicht des aktuellen
vbaProject.bin -Payloads. Wenn der Payload ein gültiger OLE-VBA-Speicher ist,
wird ein TXLSVBAProject zurückgegeben, das Modulnamen und Quelltext enthält;
andernfalls wird nilzurückgegeben. Der rohe
VbaProject -Payload bleibt die maßgeblichen Bytes für SaveAs/Open-Roundtrips |
| AddChartSheet(Name, Type, Title) | Erstellt ein als
IsChartSheet = True markiertes Arbeitsblatt und initialisiert Charts[0]
mit einem sinnvollen Standard-Ganzseitenrahmen. SaveAs schreibt solche Blätter
in xl/chartsheets/sheetN.xml. Siehe
TXLSXChart |
| ParallelParse | Bei Open streamt ein Multi-Sheet- |
| ParallelParseThreads | Setzt die maximale Anzahl von Arbeitsblatt-Streams, die während Opengleichzeitig geparst werden. Null wählt die automatische Worker-Anzahl, positive Werte setzen eine explizite Obergrenze. Die aktiven Arbeitsmengen von Inflater und XML-Reader sind durch diesen Wert begrenzt |
| StreamingWrite | verwendet SaveAs
WriteWorksheetXmlStreaming pro Blatt — es wird kein sheetXmls-Cache
gehalten; sharedStrings.xml wird erst ausgegeben, nachdem jedes Blatt die SST befüllt hat
Kombiniert mit dem zeilenweisen
TXLSWideStringBuilder bleibt der Speicherbedarf bei großen Blättern linear
Standardwert ist False (bisheriges Verhalten) |
| PreserveUnsupportedParts / ClearUnsupportedParts | PreserveUnsupportedParts steht standardmäßig auf True und behält unbekannte beziehungs erreichbare Paketteile plus fremde Deklarationen des Workbook-Root-Namensraums, Markup-Compatibility-Attribute und vollständige <extLst>
-Payloads der Arbeitsmappe während Open und SaveAs. Beziehungsreferenzen innerhalb der erhaltenen Erweiterungs-Payload werden ummapped, wenn generierte IDs mit der Quelle kollidieren. Setzen Sie die Eigenschaft vor dem Öffnen auf False, oder rufen Sie
ClearUnsupportedPartsauf, um diesen Zustand zu verwerfen. Die Diagnosen
UnsupportedPartCount und UnsupportedPartBytes
zählen erhaltene Paketteile und schließen inline arbeitsmappen-XML-Metadaten nicht ein |
| PreserveRawParts | Steht standardmäßig auf True und lässt dateibasierte SaveAs-Operationen ein validiertes privates Quellarchiv öffnen, dann unveränderte Theme-, VBA-, Verbindungs-, External-Link-, Bild-, Diagramm-, Pivot- und beziehungs erreichbare opake Einträge mit ihren ursprünglich komprimierten Payloads kopieren. Erfolgreiche Dateispeicherungen legen eine neue saubere Basis für spätere Speicherungen fest. Stream-basierte Arbeitsmappen, eine geänderte Quelldatei, bearbeitete Payloads, nicht unterstützte Komprimierungsverfahren und ungültige komprimierte Größen verwenden den transaktionalen Serialisierungs-Fallback oder eine Ablehnung |
| SaveAsEncrypted / OpenEncrypted / CanReadEncrypted | ECMA-376-Standard-Verschlüsselungs-Schreibunterstützung
SaveAsEncrypted schreibt einen standardkonformen, AES-128-geschützten
OLE-Compound-File-Container für nicht leere Kennwörter, wobei AES-NI-Beschleunigung
bei Verfügbarkeit genutzt und andernfalls ein portabler Software-Fallback verwendet wird
Die verschlüsselte Ausgabe lässt sich in Excel 2007 und höher mit dem
zum Speichern verwendeten Kennwort öffnen. CanReadEncrypted erkennt
die OLE2-Magic-Bytes; OpenEncrypted fällt transparent auf den normalen Open -Pfad zurück und löst für verschlüsselte Pakete
weiterhin
EXlsxEncryptionNotImplemented aus, bis die Entschlüsselungsunterstützung verfügbar ist |
| SaveAs(FileName) | Schreibt die Arbeitsmappe in die angegebene Datei. Gibt
1 bei Erfolg zurück, negativ bei Fehler. Hat die Arbeitsmappe keine
Blätter, wird vor dem Schreiben ein Standard- Sheet1 hinzugefügtDiese Überladung und SaveAs(FileName, FileFormat) staffeln die Ausgabe, bevor das Ziel ersetzt wird
Scheitert das Ersetzen, ist der Rückgabewert -1 , und LastDiagnostic meldet xlsDiagnosticOutputCommitFailed (1005), den ursprünglichen Windows- NativeCodeund die Systemfehlermeldung
Das alte Ziel und der Arbeitsmappen- FileName bleiben unverändert; die temporäre Ausgabe wird freigegeben, und ein späterer Speichervorgang löscht die vorherige Diagnose |
| SaveAs(FileName, FileFormat) | Akzeptiert xlsxOpenXMLWorkbook für gewöhnliche OOXML-Ausgabe, xlsxOpenDocumentSpreadsheet für ODS, xlsxOpenXMLTemplate für ein makrofreies XLTX-Template oder xlsxOpenXMLMacroEnabledTemplate für ein XLTM-Template; gepufferte und gestreamte Ausgabe wird für alle OOXML-Varianten unterstütztTemplate-Ausgabe schreibt application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml für /xl/workbook.xml; für Dateien die Endung .xltx verwenden und application/vnd.openxmlformats-officedocument.spreadsheetml.template , wenn das Paket über HTTP ausgeliefert wirdDas Format muss explizit gewählt werden: weder die Dateiendung noch ein importiertes Template ändert die Standard- SaveAs -AusgabeIst ein VBA-Projekt vorhanden, gibt die XLTX-Ausgabe -1 mit einer Diagnose für nicht unterstützte Formate zurück, bevor das Ziel geschrieben wird; XLTM bewahrt ein vorhandenes VBA-Projekt und akzeptiert auch eine Arbeitsmappe ohne MakrosSaveAsODS bleibt die benannte Abkürzung für die ODS-Ausgabe mit optionaler TODSExportOptions -Steuerung |
| GetConversionReport / SaveAsChecked | Prüft einen aufrufereigenen, mutationsfreien Konvertierungsbericht bekannter Features oder weist beeinträchtigte und fallengelassene Features vor dem Schreiben zurück, indem AllowLossy=False gelassen wird
Explizit verlustbehaftetes Speichern weist weiterhin nicht unterstützte Konvertierungen zurück; siehe Berechnungs- und Konvertierungstreue für Ziel-, Eigentums-, Diagnose- und Bewahrungsgrenzen |
| SaveAs(Stream) / SaveAs(Stream, FileFormat) | Schreibt die Arbeitsmappe direkt in einen beliebigen TStream, und die FileFormat -Überladung akzeptiert xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet, xlsxOpenXMLTemplateoder xlsxOpenXMLMacroEnabledTemplate für OOXML-Arbeitsmappen, ODS-Tabellen, XLTX- oder XLTM-Templates im SpeicherGibt 1 bei Erfolg zurück, und Stream-Speicherungen beachten RecalcBeforeSave: Der manuelle Modus bewahrt die vorhandenen Formel-Caches, im Dirty- und im Always-Modus werden sie vor der Serialisierung aktualisiertDer Aufrufer behält das Eigentum am Stream; ein Abbruch, bevor das Schreiben beginnt, bewahrt Inhalt und Position, während ein Fehler nach dem Beginn der Serialisierung eine teilweise Ausgabe hinterlassen kann |
| Open(FileName) | Liest ein OOXML-.xlsx-Archiv und ersetzt die
Sheets -Auflistung durch dessen Inhalt. Gibt 1
bei Erfolg zurück |
| Open(FileName, Password) | Reserviert für zukünftige verschlüsselte XLSX-Unterstützung. Verhält sich
derzeit wie Open(FileName) — das Kennwort wird ignoriert |
| Open(Stream) | Liest ein OOXML-.xlsx-Archiv aus einem
TStream. Gibt 1 bei Erfolg zurück |
| OpenCSV(FileName) / OpenCSV(Stream) | Importiert CSV- oder TSV-Text in die Arbeitsmappe mit
automatischer Trennzeichenerkennung (,, ;,
Tabulator oder Pipe), BOM-basierter UTF-8-/UTF-16-Kodierungserkennung, RFC-4180-konformen
Feldern in Anführungszeichen sowie optionaler Werttypinferenz über die ADetectTypes -Überladungen. Der Aufruf von
Open(FileName) mit einer .csv - oder
.tsv -Datei wird automatisch an diesen Importer weitergeleitet. Siehe
OpenCSV-Methode |
| OpenODS(FileName) / OpenODS(Stream) | Importiert ein OpenDocument-Spreadsheet-(.ods)-Paket aus einer Datei oder einem Stream. Der Reader lädt content.xml, gemeinsam genutzte Stilinformationen aus styles.xmlund Ansichtseinstellungen, sofern vorhanden, und bewahrt Blattnamen, Skalare, zwischengespeicherte Formelergebnisse, grundlegende Formelreferenzkonvertierung, wiederholte Zeilen/Spalten/Zellen, verbundene Bereiche, Rich-Text, Hyperlinks, Kommentare, eingebettete Bilder und Diagramme, ausgeblendete Zeilen/Spalten/Blätter, Zeilenhöhen, Spaltenbreiten, vererbte/Standardstile, Zahlen-/Datums-/Uhrzeit-/Währungs-/wissenschaftliche/Bruchformate, Zell- und Blattschutzstatus, benannte Bereiche, Druckbereiche, manuelle Seitenumbrüche, fixierte Fensterbereiche, AutoFilter-Bereiche, Zeilen-/Spalten-Gliederungsgruppen, Kopf-/Fußzeilen, Datengültigkeiten inkl. Eingabeaufforderungen, bedingte Formate inkl. Formeln/Farbskalen/Datenbalken und Registerkartenfarbe. Vollständige OpenFormula-Semantik, ODS-Schutzschlüssel, Kommentargeometrie, erweiterte Kommentarformatierung und paketweite Funktionen außerhalb des Tabellenkalkulationsinhalts werden nicht konvertiert |
| SaveAsODS(FileName) / SaveAsODS(Stream), with optional TODSExportOptions | Speichert die Arbeitsmappe als gültiges OpenDocument-Spreadsheet-Paket. Es schreibt ODF- mimetype, Manifest, Metadaten, Stile und Arbeitsblattinhalt direkt und überträgt typisierte Werte, Formeln, Stile, Rich-Text, Abmessungen, Verbundzellen, Hyperlinks, Bilder, Diagramme, benannte Bereiche, AutoFilter-Bereiche, bedingte Formate, Datengültigkeiten, fixierte Fensterbereiche, Seiteneinrichtung, Kopf-/Fußzeilen, Druckbereiche, manuelle Seitenumbrüche, Gliederungsgruppen, Registerkartenfarbe und Blattvisibilität, soweit diese Funktionen im HotXLS-Arbeitsmappenmodell verfügbar sind. Beim Übergeben von Exportoptionen, auch nil, bleiben die normale Neuberechnungsrichtlinie, der Fortschrittsabbruch, die Diagnose und der Schreibschutz erhalten. Die Dateiausgabe schreibt zunächst eine nebengeordnete Datei und ersetzt das Ziel erst nach erfolgreicher Serialisierung; Serialisierungsfehler und Abbruch vor dem Commit bewahren das bisherige Ziel. Der Schreibfortschritt meldet jede fertiggestellte Tabelle, und ppsEnd ist eine Abschlussbenachrichtigung, deren Abort-Anforderung ein bereits abgeschlossenes Speichern nicht mehr abbrechen kann. Die Stream-Ausgabe behält das Eigentum des Aufrufers und das gewöhnliche Stream-Speicherverhalten, das nach dem Beginn der Serialisierung eine teilweise Ausgabe hinterlassen kann |
| TODSExportOptions | Steuert den ODS-Export. Generator überschreibt den meta:generator -Wert in meta.xml; ein leerer Wert verwendet die integrierte HotXLS-Generatorzeichenfolge. IncludeCharts und IncludeImages sind standardmäßig True; bei False werden die zugehörigen Zeichenrahmen, Paketteile und Manifesteinträge gemeinsam entfernt, sodass die Ausgabe keine verwaisten Diagramm- oder Bildreferenzen enthält. Der Aufrufer ist Eigentümer der Optionsinstanz und muss sie freigeben |
| GetODSSheetNames(FileName, AList), GetODSSheetNames(Stream, AList) | Liest nur ODS-Tabellennamen aus content.xml in AList , ohne die Arbeitsmappe zurückzusetzen oder zu befüllen. Verwenden Sie diese Methode, wenn ein Dateiauswahldialog oder ein Importworkflow Blattnamen benötigt, bevor die Arbeitsmappe geladen wird |
| SaveAsCSV overloads | Vier Überladungen (FileName oder Stream ×
aktives Blatt Standard / expliziter SheetIndex + Delimiter). Schreibt das
gewählte Blatt als UTF-8-CSV mit BOM. Datumswerte werden als
yyyy-mm-dd hh:nn:ssausgegeben; Formelzellen werden vor dem
Export berechnet, und Formeltext wird nur verwendet, wenn die Berechnung nicht verfügbar ist
Gibt 0 bei Erfolg zurück |
| SaveAsHTML overloads | Optionsüberladungen akzeptieren TXLSXHtmlExportOptions für Title, WriteDocument, IncludeStyles, IncludeBOMund TableClass. Setzen Sie WriteDocument auf False für ein Tabellenfragment; setzen Sie IncludeBOM auf False , wenn die Ausgabe in eine bestehende UTF-8-Antwort eingebettet wird. Die exportierte Ausgabe bewahrt Zell-Hyperlinks als <a> -Anker und verankerte Bilder als inline data: -Bild-URIs; der Export auf Arbeitsmappenebene umfasst auch Anker außerhalb belegter Zellen. Zellkommentare werden als escaped <td>title Attribute, und der Export auf Arbeitsmappenebene schließt Anker ein, die nur Kommentare tragen. Wenn IncludeStyles is enabled, explicit ColWidth values are emitted as <col> widths and explicit RowHeight values as <tr> - <span> -Attribute ausgegeben. Bei aktiviertem IncludeStyles werden explizite border-left-Werte als border-right-Breiten und explizite border-top-Werte als border-bottom -Höhenstile ausgegeben. Rich-Text-Zellenläufe werden als escaped IncludeStyles -Elemente mit inline Schriftart-, Farb-, Hervorhebungs- und Unterstreichungsstilen ausgegeben. Zellrahmen werden als CSS-Regeln RowHidden , ColHidden, <colgroup>und vertical-align ausgegeben. Ausgeblendete Zeilen und Spalten sowie explizit nullbreite Spalten werden in der generierten Tabelle übersprungen. Vertikale Ausrichtungseinstellungen werden als CSS- IncludeStyles -Regeln ausgegeben |
| SaveAsRTF overloads | Vier Überladungen (FileName oder Stream ×
aktives Blatt Standard / expliziter SheetIndex). Schreibt das gewählte Blatt
als RTF-1.6-Dokument mit einer einfachen Tabelle. Spaltenbreiten werden aus ColWidth -Daten abgeleitet (1 Zeicheneinheit ≈ 96 Twips;
Standard 809 Twips). Zellweise Fett-/Kursiv-/Schriftgröße werden angewendet;
Nicht-ASCII-Zeichen werden als vorzeichenbehaftete 16-Bit- \uN?
-RTF-Unicode-Escapes kodiert
Verbundene Zellen werden nicht überspannt. Gibt 0 bei Erfolg zurück |
| ActiveSheet | 1-basierter Index des aktiven (ausgewählten) Blattes (0 wenn keins), passend zum ActiveSheetIndexder klassischen XLS-Engine. SaveAs schreibt activeTab="N" auf <workbookView> (das OOXML-Attribut activeTab selbst bleibt 0-basiert), wenn Arbeitsmappenansichtsoptionen ausgegeben werden müssen, und markiert das zugehörige Blatt mit tabSelected="1" |
| Minimized / WindowHidden / ShowHorizontalScroll / ShowVerticalScroll | Fensterchrome-Flags der Arbeitsmappe, geschrieben in <workbookView>. Minimized schreibt minimized="1", WindowHidden schreibt visibility="hidden", und ShowHorizontalScroll / ShowVerticalScroll blenden die Arbeitsmappen-Scrollleisten ein oder aus. Open überträgt alle vier Werte im Roundtrip |
| XWindow / YWindow / WindowWidth / WindowHeight | Fenstergeometrie der Arbeitsmappe, geschrieben in <workbookView>. XWindow und YWindow speichern den Fensterursprung, während WindowWidth und WindowHeight seine Größe speichern. Werte werden auf 0..65535 begrenzt und beim Laden im Roundtrip übertragen |
| ShowSheetTabs / TabRatio / FirstSheet / AutoFilterDateGrouping | Ansichtsoptionen des Arbeitsmappenfensters, geschrieben in <workbookView>. ShowSheetTabs blendet die Registerkartenleiste ein oder aus, TabRatio steuert die Breite zwischen Registerkartenleiste und Scrollleiste (0..1000), FirstSheet wählt die erste sichtbare Registerkarte als 0-basierten Blattindex aus, und AutoFilterDateGrouping steuert die Excel-Datumsgruppierung in AutoFilter-Dropdowns. Open überträgt alle vier Werte im Roundtrip |
| Date1904 | Datumsbasis der Arbeitsmappe. False (Standard) =
Windows-1900-Epoche; True = Mac-1904-Epoche (verschiebt jede
Datumsseriennummer um 1462 Tage). Setzen Sie dies vor dem Zuweisen
von
TDateTime -Zellwerten, damit Excel dasselbe
Kalenderdatum anzeigt |
| Iterate / IterateCount / IterateDelta | Steuert die iterative Berechnung von Zirkelbezügen
IterateCount wird auf 1..32767 begrenzt und steht standardmäßig auf 100
IterateDelta akzeptiert nicht-negative endliche Werte und steht standardmäßig auf 0.001
Nicht-Standard-Grenzen bleiben erhalten, auch wenn Iterate aktuell False |
| CalcMode / RefMode / CalcId | Steuert den Berechnungsmodus der Arbeitsmappe, den Formelbezugstil und die Identität der Berechnungs-Engine
CalcMode akzeptiert auto,
manualoder autoNoTableRefMode akzeptiert A1 oder R1C1
mit groß-/kleinschreibungsunabhängiger Eingabe und kanonischer Ausgabe
Die Ausgabe moderner Rich-Errors verwendet eine emittierte CalcId von mindestens
191029, damit Excel gecachte moderne Fehler interpretiert; höhere angefragte
Werte werden bewahrt und die In-Memory-Eigenschaft bleibt unverändert |
| FullCalcOnLoad / ForceFullCalc / CalcCompleted / CalcOnSave / FullPrecision | Steuert vollständige Neuberechnung, Vollständigkeit zwischengespeicherter Berechnungen, Neuberechnung vor dem Speichern und die Präzisionsrichtlinie
Jeder nicht-standardmäßige Wert emittiert das passende <calcPr> -Attribut unabhängig und round-tript es |
| ConcurrentCalc / ConcurrentManualCount | Steuert die gleichzeitige Arbeitsmappenberechnung und den manuellen Hinweis zur Worker-Anzahl
ConcurrentManualCount wird auf null oder größer begrenzt |
| SourceFormat | Gibt die Paketfamilie an, die beim letzten erfolgreichen Open - oder OpenODS -Aufruf geladen wurde, und liefert xlsxOpenXMLWorkbook für OOXML-Arbeitsmappen und -Templates einschließlich XLTX und XLTM, xlsxOpenDocumentSpreadsheet für ODS sowie xlsxExcelBinaryWorkbook für die unterstützte XLSB-Teilmenge aus Werten und StilenEine neu erstellte Arbeitsmappe gibt xlsxOpenXMLWorkbook zurück, bis eine Datei geöffnet wird, und diese Eigenschaft wählt nicht das Ausgabeformat |
| IndexedColor[Index] | ARGB-Wert für den angegebenen OOXML-Indexed-Color-Paletten-
Slot (0..63). Beim Lesen wird der Benutzeroverride zurückgegeben, sofern gesetzt, andernfalls
der integrierte OOXML-Standard (XlsxDefaultIndexedPalette)
Beim Schreiben wird Slot Nüberschrieben; SaveAs gibt dann einen vollständigen
<indexedColors> -Block mit allen 64 Slots aus |
| ResolveIndexedColor | Klassifiziert öffentliche Farb-Indizes, BIFF- icv -Werte oder OOXML-Indexed-Colors und löst einen normalisierten ARGB-Wert auf, wenn die Arbeitsmappenpalette oder ein expliziter Systemfarben-Callback einen liefert |
| NearestIndexedColor | Liefert den nächstgelegenen physischen Paletteneintrag über den gemeinsamen zwischengespeicherten OKLab-Matcher, ohne Palette oder Arbeitsmappenzustand zu ändern |
| ScanIndexedColorUsage | Liefert ein deterministisches 56-Slot-Inventar mit Palettenfarben, Definitions- und Referenzzählern, Consumer-Arten und Erhaltungs-Sperren, ohne Zellen zu materialisieren oder den Arbeitsmappenzustand zu ändern |
| BuildBiffPalettePlan | Liefert einen mutationsfreien 56-Slot-BIFF-Palettenplan mit gesperrten Slots, aggregierten True-Color-Zielen, deterministischen Zuordnungen, Quellidentität und gewichteten OKLab-Fehlerstatistiken |
| ApplyBiffPalettePlan | Validiert Quellidentität, Slot-Metadaten, Sperren und opake Ziele, bevor alle geänderten Paletteneinträge atomar angewendet und der zwischengespeicherte Matcher einmal neu aufgebaut werden |
| HasCustomIndexedColor / CustomIndexedColorCount / ResetIndexedColors | HasCustomIndexedColor(N) gibt
True zurück, wenn Slot N explizit überschrieben wurde
CustomIndexedColorCount gibt die Anzahl der überschriebenen
Slots zurück (0 = kein <colors> -Block wird von SaveAs ausgegeben)
ResetIndexedColors verwirft jeden Override und stellt
die Standardpalette wieder her |
| ExternalLinks | Auflistung externer Arbeitsmappenreferenzen. Jeder
TXLSXExternalLink
-Eintrag
enthält eine Ziel-URL und eine SheetNames -Liste. SaveAs
gibt den <externalReferences> -Block in
xl/workbook.xml und die zugehörigen
xl/externalLinks/ -Teile aus. Open überträgt Ziel und
SheetNames im Roundtrip; zwischengespeicherte Zellwerte innerhalb von
<sheetDataSet> werden nicht beibehalten |
| CreateWorkspaceWorkbook | Liefert den widerrufbaren IXLSWorkspaceWorkbook -Adapter dieser Arbeitsmappe. Der Adapter bewahrt Quellidentität und Generation der Arbeitsmappe und trennt die Verbindung, bevor das Arbeitsmappenmodell zerstört wird |
| ExternalWorkspace | Threadsichere, pfaderhaltende Registry, die von der Live-Auswertung externer Formeln konsumiert wird. Exakte Identitäten und Aliasse werden bevorzugt, mehrdeutige Basissnamen-Suche wird abgelehnt, und die Identitätsnormalisierung führt keinen impliziten Datei- oder Netzwerkzugriff aus. Siehe Live workbook workspace |
| RegisterExternalWorkbook / UnregisterExternalWorkbook | Kompatibilitäts-Fassade über ExternalWorkspace . Die Registrierung mappt einen eindeutig gelieferten Namen auf das gespeicherte Beziehungsziel der Arbeitsmappe, hält Pfade und Erweiterungen auseinander und lehnt Kollisionen ab. Die Abmeldung entfernt die angeforderte Registrierung; die Zerstörung des Ziels widerruft den Adapter ebenfalls sicher |
uses lxHandleX;
var
wb: TXLSXWorkbook;
begin
wb := TXLSXWorkbook.Create;
try
wb.Sheets.Add('Demo').Cells.Item[1, 1].Value := 'Hello';
wb.SaveAs('demo.xlsx');
wb.Open('demo.xlsx');
ShowMessage(wb.Sheets[0].Cells.Item[1, 1].Value);
finally
wb.Free;
end;
end;