HotXLS-Dokumentation

TXLSXWorkbook-Klasse

Top-Level-Container für eine Excel 2007+ (.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

Deklaration

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;
      

Elemente

SheetsArbeitsblatt-Auflistung. Siehe TXLSXSheets
FontsSchriftartenpalette auf Arbeitsmappenebene. Zellen wählen eine Schriftart durch Setzen von TXLSXCell.FontIndex auf einen 1-basierten Index in dieser Auflistung. Siehe TXLSXFont / TXLSXFonts
FillsFü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
BordersRahmenpalette auf Arbeitsmappenebene. Zellen wählen einen Rahmen durch Setzen von TXLSXCell.BorderIndex auf einen 1-basierten Index in dieser Auflistung. Siehe TXLSXBorder / TXLSXBorders
NumberFormatsPalette 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
DefinedNamesBenannte Bereiche auf Arbeitsmappenebene (arbeitsmappengebunden oder blattgebunden). Siehe TXLSXDefinedName / TXLSXDefinedNames
CalculateKompiliert 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
CreateLoadedCellCursorErstellt 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
CreateReadOnlyViewErstellt 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, ComputeSemanticHashStreamt 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, ResetRenderCalibrationWeist 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
CreateRenderGeometryErstellt 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, OnUserFunctionExRückruf, der von Calculate aufgerufen wird, wenn eine Formel eine benutzerdefinierte oder nicht unterstützte Funktion aufruft. Siehe OnUserFunction / OnUserFunctionEx-Rückruf
AllowUnsafeFormulaCallbacksSteht 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
AlignmentsZellenausrichtungspalette auf Arbeitsmappenebene. Zellen wählen einen Eintrag durch Setzen von TXLSXCell.AlignmentIndex auf einen 1-basierten Index in dieser Auflistung. Siehe TXLSXAlignment
Document propertiesTitle, 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 / UnProtectWorkbookArbeitsmappenschutz-Umschalter mit optionalem 16-Bit-Legacy-Kennwort-Hash sowie den Flags LockStructure / LockWindows . Wird als <workbookProtection> in xl/workbook.xml abgebildet
LoadVbaProjectFromFile / VbaProject / HasVbaProject / VbaProjectDefinedLoadVbaProjectFromFile 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
ParsedVBAProjectSchreibgeschü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
ParallelParseBei Open streamt ein Multi-Sheet-
ParallelParseThreadsSetzt 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
StreamingWriteverwendet 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 / ClearUnsupportedPartsPreserveUnsupportedParts 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
PreserveRawPartsSteht 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 / CanReadEncryptedECMA-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ügt
Diese Ü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ützt
Template-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 wird
Das Format muss explizit gewählt werden: weder die Dateiendung noch ein importiertes Template ändert die Standard- SaveAs -Ausgabe
Ist 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 Makros
SaveAsODS bleibt die benannte Abkürzung für die ODS-Ausgabe mit optionaler TODSExportOptions -Steuerung
GetConversionReport / SaveAsCheckedPrü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 Speicher
Gibt 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 aktualisiert
Der 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 TODSExportOptionsSpeichert 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
TODSExportOptionsSteuert 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 overloadsVier Ü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 overloadsOptionsü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 overloadsVier Ü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
ActiveSheet1-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 / ShowVerticalScrollFensterchrome-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 / WindowHeightFenstergeometrie 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 / AutoFilterDateGroupingAnsichtsoptionen 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
Date1904Datumsbasis 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 / IterateDeltaSteuert 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 / CalcIdSteuert 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 / FullPrecisionSteuert 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 / ConcurrentManualCountSteuert die gleichzeitige Arbeitsmappenberechnung und den manuellen Hinweis zur Worker-Anzahl ConcurrentManualCount wird auf null oder größer begrenzt
SourceFormatGibt 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 Stilen
Eine 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
ResolveIndexedColorKlassifiziert ö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
NearestIndexedColorLiefert den nächstgelegenen physischen Paletteneintrag über den gemeinsamen zwischengespeicherten OKLab-Matcher, ohne Palette oder Arbeitsmappenzustand zu ändern
ScanIndexedColorUsageLiefert 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
BuildBiffPalettePlanLiefert einen mutationsfreien 56-Slot-BIFF-Palettenplan mit gesperrten Slots, aggregierten True-Color-Zielen, deterministischen Zuordnungen, Quellidentität und gewichteten OKLab-Fehlerstatistiken
ApplyBiffPalettePlanValidiert 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 / ResetIndexedColorsHasCustomIndexedColor(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
ExternalLinksAuflistung 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
CreateWorkspaceWorkbookLiefert 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
ExternalWorkspaceThreadsichere, 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 / UnregisterExternalWorkbookKompatibilitä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

Beispiel

Eine Arbeitsmappe schreiben und erneut öffnen:
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;
    

Siehe auch