HotXLS-documentatie

TXLSXWorkbook class

Container op toppniveau voor een Excel 2007+ (.xlsx) werkmap. Gedeclareerd in lxHandleX. Bevat een TXLSXSheets -verzameling en biedt SaveAs / Open -ingangen voor OOXML-werkmappen, CSV / TSV-import en OpenDocument Spreadsheet -lees-/schrijfworkflows (.ods)

Declaration

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;
      

Members

SheetsWorksheet collection. Zie TXLSXSheets
FontsWerkmapbreed lettertypepalet. Cellen kiezen een font door TXLSXCell.FontIndex in te stellen op een 1-gebaseerde index in deze verzameling. Zie TXLSXFont / TXLSXFonts
FillsWerkmapbreed vulpalet. Cellen kiezen een vulling door TXLSXCell.FillIndex in te stellen op een 1-gebaseerde index in deze verzameling. Zie TXLSXFill / TXLSXFills
BordersWerkmapbreed randpalet. Cellen kiezen een rand door TXLSXCell.BorderIndex in te stellen op een 1-gebaseerde index in deze verzameling. Zie TXLSXBorder / TXLSXBorders
NumberFormatsAangepast getalnotatiepalet op werkmapniveau. Cellen kiezen een opmaak door TXLSXCell.NumberFormatIndex in te stellen op een 1-gebaseerde index in deze verzameling. Zie TXLSXNumberFormat / TXLSXNumberFormats
DefinedNamesBenoemde bereiken op werkmapniveau (werkmap-scope of sheet-scoped). Zie TXLSXDefinedName / TXLSXDefinedNames
CalculateCompileert en evalueert een Excel-formuliereeks tegen het actieve blad, waarbij een voorafgaande = wordt geaccepteerd Celverwijzingen, bereiken, formules in gerefereerde cellen, verwijzingen tussen bladen, bereiken met gedefinieerde namen en ondersteunde tekst-, datum-, werkdag-, engineering/basisconversie-, bitwise-, statistische, aggregatie- en wiskundefuncties worden geëvalueerd via de gedeelde HotXLS-formule-engine Zie OnUserFunction om aangepaste of niet-ondersteunde functies af te handelen
CreateLoadedCellCursorMaakt een cursor met constante status over opgeslagen XLSX-waarden en formules, in rij-major-volgorde, met een overload die ook onafhankelijk gestijlde lege cellen als xlckBlankteruggeeft. Sparse blokken en packed storage worden doorlopen zonder de packed-representatie te materialiseren. Zie CreateLoadedCellCursor method
CreateReadOnlyViewMaakt een weergave met constante tijd op het gedeelde model, met een lokaal actief werkblad, by-value-momentopnamen, gecachte formuleresultaten, opt-in geïsoleerde formule-evaluatie, directe packed-cell-lezingen, referentieteld levensduur via IXLSXWorkbookOwneren fail-fast schrijfuitsluiting; de IXLSReadOnlyWorkbookView rapporteert ook SheetCount voor aanroepers die werkbladen oplossen zonder het werkmapmodel aan te raken. Zie CreateReadOnlyView method
SaveSemanticSnapshot, ComputeSemanticHashStreamt een geversioneerde canonieke werkmapsemantische representatie of berekent zijn lowercase SHA-256, zonder de volledige snapshot te materialiseren. Zie semantic snapshot and hash methods
RenderCalibration, CaptureRenderCalibration, ResetRenderCalibrationWijs atomisch een gevalideerde renderingkalibratie toe, leg een onafhankelijke waarde-momentopname vast voor één bewerking, of herstel de standaardwaarden; de runtime-configuratie wordt niet geserialiseerd en vergroot of verkleint zelf geen werkbladrijen of -kolommen. Zie render calibration values and snapshots
CreateRenderGeometryMaakt een bewerkingseigen geometrie- en lettertypemeetservice met immutabele kalibratie, werkmapgeneratie- en backend-identiteit, plus een begrensd lokaal cachegeheugen; AutoFit legt één service per bewerking vast en paginering één per build, zonder werkbladafmetingen te schrijven. Zie render geometry and font measurement
OnUserFunction, OnUserFunctionExCallback die door Calculate wordt gebruikt wanneer een formule een aangepaste of niet-ondersteunde functie aanroept. Zie OnUserFunction / OnUserFunctionEx callback
AllowUnsafeFormulaCallbacksStaat standaard op false en voorkomt dat gevaarlijke externe functienamen of functienamen in macro-stijl vóór de evaluatie van argumenten bij user-function-handlers terechtkomen. Zie callback safety policy
GetSheetNames(FileName, AList), GetSheetNames(Stream, AList)Leest xl/workbook.xml en voegt werkbladnamen toe aan AList in werkmapvolgorde zonder werkblad-XML te laden. De stream-overload verwacht een complete XLSX- packagestroom. Retourneert het aantal gelezen namen of -1 wanneer het package niet kan worden geopend
AlignmentsWerkmapbreed uitlijningspalet. Cellen kiezen een invoer door TXLSXCell.AlignmentIndex in te stellen op een 1-gebaseerde index in deze verzameling. Zie TXLSXAlignment
Document propertiesTitle, Author, Subject, Keywords, Description, Category, LastModifiedBy, Company, Application, AppVersion, Created, Modified. Als je een ervan instelt, wordt docProps/core.xml + docProps/app.xml bij SaveAs gevuld (anders houdt de werkmap de minimale set parts aan)
ProtectWorkbook / UnProtectWorkbookWerkmapbeveiligingsschakelaar met optionele 16-bits legacy-wachtwoordhash en de vlaggen LockStructure / LockWindows-vlaggen. Komt terug als <workbookProtection> in xl/workbook.xml
LoadVbaProjectFromFile / VbaProject / HasVbaProject / VbaProjectDefinedLoadVbaProjectFromFile importeert een ruwe vbaProject.bin-payload; VbaProject stelt de bytes bloot; HasVbaProject en de alleen-lezen VbaProjectDefined geven allebei terug of een payload aanwezig is. Sla op met de extensie .xlsm wanneer Excel macro's moet kunnen inschakelen
ParsedVBAProjectAlleen-lezen geparseerde weergave van de huidige vbaProject.bin-payload. Als de payload een geldige OLE- VBA-opslag is, geeft deze een TXLSVBAProject terug met module- namen en brontekst; anders nil. De ruwe VbaProject payload blijft de leidende bytes die voor de SaveAs/Open-roundtrip worden gebruikt
AddChartSheet(Name, Type, Title)Maakt een werkblad aan met IsChartSheet = True en seedt Charts[0] met een zinvol standaardanker voor een volledige pagina. SaveAs schrijft zulke bladen naar xl/chartsheets/sheetN.xml. Zie TXLSXChart
ParallelParseStaat True op: multi-sheet Open streamt worksheet-ZIP-items direct naar worker-lokale inflaters en XML-readers Er worden geen opgeblazen staging-kopieën van worksheet-XML bewaard, en de package-bron is alleen vergrendeld voor elke gepositioneerde lezing. Zet False om één werkblad tegelijk te parsen. Default is True
ParallelParseThreadsStelt het maximum aantal werkbladstreams in dat gelijktijdig wordt geparst tijdens Open. Nul kiest het automatische aantal workers, en positieve waarden stellen een expliciete cap in. Actieve werksets van inflaters en XML-readers worden door dit aantal begrensd
StreamingWriteBij True gebruikt SaveAs WriteWorksheetXmlStreaming per werkblad — er wordt geen sheetXmls-cache bijgehouden; sharedStrings.xml wordt als laatste geschreven nadat elk werkblad de SST heeft gevuld. In combinatie met de per-rij TXLSWideStringBuilder blijft het geheugengebruik lineair op grote werkbladen. Default is False (bestaand gedrag)
PreserveUnsupportedParts / ClearUnsupportedPartsPreserveUnsupportedParts staat standaard op True en bewaart onbekende via relaties bereikbare package-parts plus vreemde declaraties van workbook-root-namespaces, attributen voor markup-compatibiliteit en complete <extLst> -payloads op werkmapniveau tijdens Open en SaveAs. Relatieverwijzingen binnen de bewaarde extensiepayload worden opnieuw gemapt wanneer gegenereerde id's conflicteren met de bron. Zet de eigenschap op False vóór Open, of roep ClearUnsupportedPartsaan, om deze status te verwijderen. De diagnostiek UnsupportedPartCount en UnsupportedPartBytes telt bewaarde package-parts en omvat geen inline werkmap-XML-metadata
PreserveRawPartsStaat standaard op True en laat bestandsgebaseerde SaveAs-bewerkingen één gevalideerd privé-bronarchief openen en vervolgens ongewijzigde theme-, VBA-, connection-, external-link-, image-, chart-, pivot- en via relaties bereikbare opaque items kopiëren met hun oorspronkelijke gecomprimeerde payloads. Geslaagde bestands-opslagen leggen een nieuwe schone basislijn vast voor latere opslagen. Stream-gebaseerde werkmappen, een gewijzigd bronbestand, bewerkte payloads, niet-ondersteunde compressiemethoden en ongeldige gecomprimeerde groottes gebruiken transactionele serialisatie-fallback of weigering
SaveAsEncrypted / OpenEncrypted / CanReadEncryptedECMA-376 Standard Encryption-schrijfondersteuning SaveAsEncrypted schrijft een volgens de standaard conformerende AES-128- container met OLE Compound File voor niet-lege wachtwoorden, met AES-NI-versnelling wanneer beschikbaar en een portable software-fallback anders. De versleutelde uitvoer opent in Excel 2007 en later met het wachtwoord waarmee hij is opgeslagen. CanReadEncrypted herkent de OLE2-magic-bytes; OpenEncrypted valt voor niet-versleutelde bestanden terug op gewone Open en geeft nog steeds EXlsxEncryptionNotImplemented bij versleutelde pakketten totdat decryptie-ondersteuning landt
SaveAs(FileName)Schrijft de werkmap naar het opgegeven bestand. Geeft 1 terug bij succes, negatief bij fout. Heeft de werkmap geen werkbladen, dan wordt vóór het schrijven een standaard- Sheet1 toegevoegd
Deze overload en SaveAs(FileName, FileFormat) zetten de uitvoer eerst weg voordat de bestemming wordt vervangen Faalt de vervanging, dan is de retourwaarde -1 en rapporteert LastDiagnostic xlsDiagnosticOutputCommitFailed (1005), de oorspronkelijke Windows-NativeCode en de systeemfoutmelding De oude bestemming en de FileName van de werkmap blijven ongewijzigd; de tijdelijke uitvoer wordt vrijgegeven, en een latere save wist de vorige diagnose
SaveAs(FileName, FileFormat)Accepteert xlsxOpenXMLWorkbook voor gewone OOXML-uitvoer, xlsxOpenDocumentSpreadsheet voor ODS, xlsxOpenXMLTemplate voor een macrovrije XLTX-sjabloon of xlsxOpenXMLMacroEnabledTemplate voor een XLTM-sjabloon; gebufferde en gestreamde uitvoer wordt voor alle OOXML-keuzes ondersteund
Sjabloonuitvoer schrijft application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml voor /xl/workbook.xml; gebruik de bestandsextensie .xltx voor bestanden en application/vnd.openxmlformats-officedocument.spreadsheetml.template wanneer het pakket via HTTP wordt aangeboden
Het formaat moet expliciet worden gekozen: noch de bestandsextensie, noch een geïmporteerde sjabloon verandert de standaard- SaveAs -uitvoer
Is er een VBA-project aanwezig, dan geeft XLTX-uitvoer -1 terug met een diagnostiek voor niet-ondersteund formaat voordat de bestemming wordt geschreven; XLTM behoudt een bestaand VBA-project en accepteert ook een werkmap zonder macro's
SaveAsODS blijft de benoemde snelkoppeling voor ODS-uitvoer met optionele TODSExportOptions -aansturing
GetConversionReport / SaveAsCheckedInspecteer een rapport van bekende-functieconversies dat in beheer van de aanroeper is en niet muteert, of wijs verslechterde en weggelaten features af vóór het schrijven door AllowLossy=False te laten Expliciet verlieslatend opslaan wijst niet-ondersteunde conversies nog steeds af; zie reken- en conversiefideliteit voor doelen, eigendom, diagnostiek en behoudsgrenzen
SaveAs(Stream) / SaveAs(Stream, FileFormat)Schrijft de werkmap rechtstreeks naar willekeurige TStream, en de overload met FileFormat accepteert xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet, xlsxOpenXMLTemplateof xlsxOpenXMLMacroEnabledTemplate voor OOXML-werkmappen, ODS-spreadsheets, XLTX-sjablonen of XLTM-sjablonen in het geheugen
Geeft 1 terug bij succes, en streamopslag volgt RecalcBeforeSave: de handmatige modus behoudt bestaande formulecaches, terwijl het dirty- en het always-beleid ze vóór serialisatie verversen
De aanroeper blijft eigenaar van de stream; annulering voordat het schrijven begint, behoudt inhoud en positie, terwijl een fout na het starten van de serialisatie gedeeltelijke uitvoer kan achterlaten
Open(FileName)Leest een OOXML .xlsx-archief en vervangt de Sheets-verzameling door de inhoud. Retourneert 1 bij succes
Open(FileName, Password)Gereserveerd voor toekomstige ondersteuning van versleutelde XLSX. Gedraagt zich nu als Open(FileName) — het wachtwoord wordt genegeerd
Open(Stream)Leest een OOXML .xlsx-archief uit een TStream. Retourneert 1 bij succes
OpenCSV(FileName) / OpenCSV(Stream)Importeert CSV- of TSV-tekst in de werkmap met automatische scheidingstekendetectie (,, ;, tab of pipe), BOM-gebaseerde UTF-8/UTF-16-detectie, quoted velden in RFC 4180-stijl en optionele waarde-type-inferentie via de ADetectTypes-overloads. Een Open(FileName)-aanroep op een .csv- of .tsv-pad routeert automatisch naar deze importeur. Zie OpenCSV method
OpenODS(FileName) / OpenODS(Stream)Importeert een OpenDocument Spreadsheet(.ods)-package vanuit een bestand of stream. De lezer laadt content.xml, gedeelde stijlinformatie uit styles.xml en weergave-instellingen indien aanwezig, en behoudt bladnamen, scalaire waarden, gecachte formulieresultaten, basisformule-verwijzingsconversie, herhaalde rijen/kolommen/cellen, samengevoegde bereiken, rich text, hyperlinks, opmerkingen, ingesloten afbeeldingen, ingesloten diagrammen, verborgen rijen/kolommen/bladen, rijhoogten, kolombreedtes, overgeërfde/standaardstijlen, getal-/datum-/tijd-/valuta-/wetenschappelijke-/breuknotaties, cel- en bladbeveiligingsstatus, benoemde bereiken, afdrukbereiken, handmatige pagina-einden, bevroren vensters, AutoFilterbereiken, rij-/kolomoutlinegroepen, kop-/voetteksten, datavalidaties inclusief prompts, voorwaardelijke opmaak inclusief formules/kleurschalen/databalken, plus de tabbladkleur van het blad. Volledige OpenFormula-semantiek, ODS-beveiligingssleutels, opmerkingsgeometrie, geavanceerde opmerkingsopmaak en packagefuncties buiten spreadsheetinhoud worden niet geconverteerd
SaveAsODS(FileName) / SaveAsODS(Stream), with optional TODSExportOptionsSlaat de werkmap op als een geldig OpenDocument Spreadsheet-pakket. Het schrijft de ODF mimetype, manifest, metadata, styles, en werkbladinhoud rechtstreeks weg, met getypeerde waarden, formules, stijlen, rich text, afmetingen, samenvoegingen, hyperlinks, afbeeldingen, diagrammen, benoemde bereiken, AutoFilterbereiken, voorwaardelijke opmaak, datavalidaties, bevroren vensters, pagina-instelling, kop-/voetteksten, afdrukbereiken, handmatige pagina-einden, outlinegroepen, tabbladkleur en bladzichtbaarheid waar die functies in het HotXLS-werkmapmodel zijn vertegenwoordigd. Bij het doorgeven van exportopties, inclusief nil, blijven het normale herberekeningsbeleid, voortgangsannulering, diagnostiek en schrijfbeveiliging gehandhaafd. Bestandsuitvoer zet eerst een bestand ernaast klaar en vervangt de bestemming pas na een geslaagde serialisatie; serialisatiefout en annulering vóór de commit behouden de eerdere bestemming. De schrijfvoortgang meldt elke voltooide tabel, en ppsEnd is een terminale melding waarvan het Abort-verzoek een al voltooide opslag niet meer kan annuleren. Streamuitvoer behoudt het eigendom van de aanroeper en het gewone streamopslaggedrag, waardoor er na het starten van de serialisatie gedeeltelijke uitvoer kan achterblijven
TODSExportOptionsStuurt ODS-export aan. Generator overschrijft de waarde meta:generator in meta.xml; een lege waarde gebruikt de ingebouwde HotXLS-generatorreeks. IncludeCharts en IncludeImages staan standaard op True en verwijderen bij False de bijbehorende tekeningsframes, packageparts en manifestinvoeren samen, zodat de uitvoer geen zwevende diagram- of afbeeldingsverwijzingen bevat. De aanroeper is eigenaar van de optiesinstantie en moet die vrijgeven
GetODSSheetNames(FileName, AList), GetODSSheetNames(Stream, AList)Leest alleen ODS-tabelnamen uit content.xml in AList zonder de werkmap te resetten of te vullen. Gebruik dit wanneer een bestandskiezer of importworkflow de bladnamen nodig heeft vóór het laden van de werkmap
SaveAsCSV overloadsVier overloads (FileName of Stream × standaard actief werkblad / expliciete SheetIndex + scheidingsteken). Schrijft het gekozen blad als een UTF-8-CSV met BOM. Datumwaarden worden weergegeven alsyyyy-mm-dd hh:nn:ss; formulecellen worden berekend vóór de export, en formuletekst wordt alleen gebruikt wanneer berekening niet beschikbaar is Retourneert 0 bij succes
SaveAsHTML overloadsDe overloads met opties accepteren TXLSXHtmlExportOptions voor Title, WriteDocument, IncludeStyles, IncludeBOM en TableClass. Stel WriteDocument in op False voor een tabelfragment; stel IncludeBOM in op False wanneer de uitvoer in een bestaande UTF-8-response wordt ingebed. De geëxporteerde uitvoer bewaart celhyperlinks als <a> anchors en verankerde afbeeldingen als inline data: afbeeldings-URI's; de export op werkmapniveau omvat ankers buiten gevulde cellen. Celopmerkingen worden ook als escaped <td>title attributen weggeschreven, en export op werkmapniveau omvat ook ankers met alleen opmerkingen. Wanneer IncludeStyles is ingeschakeld, worden expliciete ColWidth-waarden als <col>-breedtes weggeschreven en expliciete RowHeight-waarden als <tr>-hoogtestijlen. Rich-text-celruns worden als escaped <span>-elementen weggeschreven met inline lettertype-, kleur-, nadruk- en onderstrepingstijlen wanneer IncludeStyles is ingeschakeld. Celranden worden als CSS border-left-, border-right-, border-top- en border-bottom-regels weggeschreven wanneer IncludeStyles is ingeschakeld. Verborgen rijen en kolommen gemarkeerd met RowHidden / ColHidden, plus expliciete kolommen met nulbreedte, worden overgeslagen in de gegenereerde tabel en <colgroup>. Instellingen voor verticale uitlijning worden als CSS vertical-align-regels weggeschreven wanneer IncludeStyles is ingeschakeld
SaveAsRTF overloadsVier overloads (FileName of Stream × standaard actief blad / expliciete SheetIndex). Schrijft het gekozen blad als RTF 1.6-document met een platte tabel. Kolombreedtes worden afgeleid uit ColWidth-gegevens (1 teken-eenheid ≈ 96 twips; standaard 809 twips). Per cel worden vet / cursief / lettergrootte toegepast; niet-ASCII-tekens worden gecodeerd als signed-16-bit \uN? RTF-unicode-escapes. Samengevoegde cellen worden niet overbrugd. Geeft 0 terug bij succes
ActiveSheet1-based index van het actieve (geselecteerde) werkblad (0 als er geen is), gelijk aan ActiveSheetIndex van de klassieke XLS-engine. SaveAs schrijft activeTab="N" op <workbookView> (het OOXML-attribuut activeTab zelf blijft 0-gebaseerd) wanneer opties voor de werkmapweergave moeten worden geëmitteerd, en markeert het bijbehorende blad met tabSelected="1"
Minimized / WindowHidden / ShowHorizontalScroll / ShowVerticalScrollChrome-vlaggen van het werkmapvenster, weggeschreven naar <workbookView>. Minimized schrijft minimized="1", WindowHidden schrijft visibility="hidden", en ShowHorizontalScroll / ShowVerticalScroll verbergen of tonen de werkmapscrollbalken. Open round-trippt alle vier de waarden
XWindow / YWindow / WindowWidth / WindowHeightGeometrie van het werkmapvenster, weggeschreven naar <workbookView>. XWindow en YWindow bewaren de venstoorsprong, WindowWidth en WindowHeight bewaren de grootte. Waarden worden geklemd op 0..65535 en round-trippen bij het laden
ShowSheetTabs / TabRatio / FirstSheet / AutoFilterDateGroupingWeergaveopties van het werkmapvenster, weggeschreven naar <workbookView>. ShowSheetTabs verbergt of toont de bladtabbalk, TabRatio stuurt de breedtesplitsing tussen tabbalk en scrollbalk en klemt op 0..1000, FirstSheet kiest de eerste zichtbare tab als 0-gebaseerde bladindex en klemt op een bestaand blad, en AutoFilterDateGrouping stuurt de Exceldatumgroepering in AutoFilter-dropdowns. Open round-trippt alle vier de waarden
Date1904Basisdatum van de werkmap. False (standaard) = Windows 1900-epoque; True = Mac 1904-epoque (schuift elke datumserie 1462 dagen op). Stel dit in vóór het toewijzen van TDateTime-celwaarden zodat Excel dezelfde kalenderdatum toont
Iterate / IterateCount / IterateDeltaStuurt iteratieve berekening van circulaire verwijzingen IterateCount wordt begrensd op 1..32767 en staat standaard op 100. IterateDelta accepteert niet-negatieve eindige waarden en staat standaard op 0.001 Niet-standaardlimieten blijven bestaan, ook wanneer Iterate momenteel False
CalcMode / RefMode / CalcIdStuurt de berekeningsmodus van de werkmap, de referentiestijl van formules en de identiteit van de berekeningsengine CalcMode accepteert auto, manualof autoNoTableRefMode accepteert A1 of R1C1 , met case-insensitive invoer en canonieke uitvoer Moderne rich-error-uitvoer gebruikt een geëmitteerde CalcId van ten minste 191029 zodat Excel gecachte moderne fouten interpreteert, waarbij hogere gevraagde waarden behouden blijven en de in-memory property ongewijzigd blijft
FullCalcOnLoad / ForceFullCalc / CalcCompleted / CalcOnSave / FullPrecisionStuurt volledige herberekening, voltooiing van gecachte berekeningen, herberekening vóór het opslaan en het precisiebeleid Elke niet-standaardwaarde schrijft en round-trippt zelfstandig het bijbehorende <calcPr> -attribuut
ConcurrentCalc / ConcurrentManualCountStuurt gelijktijdige werkmapberekening en de handmatige hint voor het aantal workers ConcurrentManualCount wordt begrensd op nul of hoger
SourceFormatGeeft de pakketfamilie terug die door de meest recente geslaagde Open- of OpenODS-aanroep is geladen, met xlsxOpenXMLWorkbook voor OOXML-werkmappen en -sjablonen, inclusief XLTX en XLTM, xlsxOpenDocumentSpreadsheet voor ODS en xlsxExcelBinaryWorkbook voor de ondersteunde XLSB-waarden-en-stijlen-subset
Een nieuw aangemaakte werkmap geeft xlsxOpenXMLWorkbook terug totdat een bestand is geopend, en deze eigenschap kiest niet het uitvoerformaat
IndexedColor[Index]ARGB-waarde voor de opgegeven OOXML indexed-color-paletslot (0..63). Bij lezen krijg je de gebruikersoverride indien ingesteld, anders de ingebouwde OOXML-standaard (XlsxDefaultIndexedPalette) Schrijven overschrijft slot N; SaveAs emitteert dan een volledig <indexedColors>-blok met alle 64 slots
ResolveIndexedColorClassificeert publieke kleurindexen, BIFF icv -waarden of OOXML indexed colors en herleidt een genormaliseerde ARGB-waarde zodra het werkpalet of een expliciete system-color-callback er een levert
NearestIndexedColorGeeft de dichtstbijzijnde fysieke palette-entry terug via de gedeelde gecachte OKLab-matcher, zonder het palet of de werkmapstatus te veranderen
ScanIndexedColorUsageGeeft een deterministische inventaris van 56 slots terug met paletkleuren, definitie- en referentietellers, consumenttypes en bewaringsvergrendelingen, zonder cellen te materialiseren of de werkmapstatus te veranderen
BuildBiffPalettePlanGeeft een mutatievrij BIFF-paletplan met 56 slots terug, met vergrendelde slots, geaggregeerde true-color-doelen, deterministische toewijzingen, bronidentiteit en gewogen OKLab-foutstatistiek
ApplyBiffPalettePlanValideert bronidentiteit, slot-metadata, vergrendelingen en opaque doelen voordat atomisch alle gewijzigde paletitems worden toegepast en de gecachte matcher één keer wordt herbouwd
HasCustomIndexedColor / CustomIndexedColorCount / ResetIndexedColorsHasCustomIndexedColor(N) geeft True terug wanneer slot N expliciet is overschreven CustomIndexedColorCount geeft het aantal overschreven slots terug (0 = geen <colors>-blok geëmitteerd door SaveAs) ResetIndexedColors gooit elke override weg en herstelt het standaardpalet
ExternalLinksVerzameling van externe werkmapverwijzingen. Elke TXLSXExternalLink-invoer bevat een doel-URL en een SheetNames-lijst. SaveAs emitteert het <externalReferences>-blok in xl/workbook.xml en de bijbehorende xl/externalLinks/-parts. Open round-trippt de Target en SheetNames; gecachte celwaarden in <sheetDataSet> worden niet bewaard
CreateWorkspaceWorkbookGeeft de herroepbare IXLSWorkspaceWorkbook -adapter voor deze werkmap terug. De adapter bewaart de bronidentiteit en generatie van de werkmap en verbreekt de verbinding voordat het werkmapmodel wordt vernietigd
ExternalWorkspaceThread-veilig, padbewarend register dat wordt gebruikt door live evaluatie van externe formules. Exacte identiteiten en aliassen hebben de voorkeur, dubbelzinnige opzoekingen op basisnaam worden geweigerd, en identiteitsnormalisatie voert geen impliciete bestands- of netwerktoegang uit. Zie Live workbook workspace
RegisterExternalWorkbook / UnregisterExternalWorkbookCompatibiliteitsfacade over ExternalWorkspace . Registratie mapped een eenduidige opgegeven naam naar het opgeslagen relatiedoel van de werkmap, houdt paden en extensies uit elkaar en weigert botsingen. Uitschrijving verwijdert de gevraagde registratie; vernietiging van het doel herroept de adapter ook veilig

Voorbeeld

Wegschrijven en heropenen van een werkmap:
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;
    

Zie ook