Dokumentace HotXLS

Třída TXLSXWorkbook

Kontejner nejvyšší úrovně pro sešit Excel 2007+ (.xlsx). Deklarováno v lxHandleX. Obsahuje kolekci TXLSXSheets collection and provides SaveAs / Open vstupní body pro sešity OOXML, import CSV / TSV a OpenDocument Spreadsheet (.odsa paletový přístup ke sdíleným prostředkům

Deklarace

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;
      

Členové

SheetsKolekce listů. Viz TXLSXSheets
FontsPaleta písem na úrovni sešitu. Buňky vyberou font nastavením TXLSXCell.FontIndex na 1-based index do této kolekce. Viz TXLSXFont / TXLSXFonts
FillsPaleta výplní na úrovni sešitu. Buňky vyberou výplň nastavením TXLSXCell.FillIndex na 1-based index do této kolekce. Viz TXLSXFill / TXLSXFills
BordersPaleta ohraničení na úrovni sešitu. Buňky vyberou ohraničení nastavením TXLSXCell.BorderIndex na 1-based index do této kolekce. Viz TXLSXBorder / TXLSXBorders
NumberFormatsPaleta vlastních formátů čísel na úrovni sešitu. Buňky vyberou formát nastavením TXLSXCell.NumberFormatIndex na 1-based index do této kolekce. Viz TXLSXNumberFormat / TXLSXNumberFormats
DefinedNamesPojmenované oblasti na úrovni sešitu (s rozsahem na sešit nebo na list). Viz TXLSXDefinedName / TXLSXDefinedNames
CalculateZkompiluje a vyhodnotí řetězec vzorce Excelu proti aktivnímu listu; vodicí = je přijat. Reference buněk, oblasti, vzorce uložené v odkazovaných buňkách, reference napříč listy, vnořené vzorcem definované názvy, broadcast pole s chybami per buňku, pole vícerozměrné regrese a predikce a podporované textové, datové, pracovní, inženýrské/base-conversion, bitové, statistické, agregační a matematické funkce vyhodnocuje sdílený formula engine HotXLS. Viz OnUserFunction pro obsluhu vlastních či nepodporovaných funkcí
CreateLoadedCellCursorVytvoří konstantní row-major kurzor v neměnném stavu nad uloženými hodnotami a vzorci XLSX, s overloadem, který samostatně stylované prázdné buňky také emituje jako xlckBlank. Řídké bloky i packed úložiště se procházejí, aniž by se materializovala packed reprezentace. Viz metoda CreateLoadedCellCursor
CreateReadOnlyViewVytvoří view sdíleného modelu v konstantním čase s lokálním aktivním listem, snapshoty po hodnotě, cacheovanými výsledky vzorců, volitelnou izolovanou evaluací vzorců, přímým čtením packed buněk, životností řízenou referenčním počtem přes IXLSXWorkbookOwnera fail-fast výhradou zápisu; IXLSReadOnlyWorkbookView také hlásí SheetCount pro volající, kteří enumerují listy, aniž by sahali na model sešitu. Viz metoda CreateReadOnlyView
SaveSemanticSnapshot, ComputeSemanticHashStreamuje verzovanou kanonickou sémantickou reprezentaci sešitu, nebo spočítá její SHA-256 hash malými písmeny, aniž by materializovala kompletní snapshot. Viz metody semantic snapshot a hash
RenderCalibration, CaptureRenderCalibration, ResetRenderCalibrationAtomicky přiřadí validovanou kalibraci vykreslování, zachytí nezávislý hodnotový snapshot pro jednu operaci, nebo obnoví defaulty; runtime konfigurace se neserializuje a sama o sobě nemění rozměry řádků či sloupců listu. Viz render calibration values and snapshots
CreateRenderGeometryVytvoří službu geometrie a měření písma vlastněnou operací s neměnnou kalibrací, identitou generace sešitu a backendu plus ohraničenou lokální cache; AutoFit zachytí jednu službu na operaci a pagination jednu na build, bez zápisu rozměrů listu. Viz render geometry and font measurement
OnUserFunction, OnUserFunctionExCallback používaný Calculate , když vzorec volá vlastní či nepodporovanou funkci. Viz OnUserFunction / OnUserFunctionEx callback
AllowUnsafeFormulaCallbacksVýchozí hodnota je false a brání nebezpečným externím či macro-style názvům funkcí, aby se dospělo k user-function handlerům dřív, než se vyhodnotí argumenty. Viz bezpečnostní politika callbacků
GetSheetNames(FileName, AList), GetSheetNames(Stream, AList)Přečte xl/workbook.xml a připojí názvy listů do AList v pořadí sešitu, aniž by načítala XML listů. Stream overload očekává kompletní stream balíčku XLSX. Vrací počet přečtených názvů, nebo -1 , když balíček nelze otevřít
AlignmentsPaleta zarovnání buněk na úrovni sešitu. Buňky vyberou položku nastavením TXLSXCell.AlignmentIndex na 1-based index do této kolekce. Viz TXLSXAlignment
Document propertiesTitle, Author, Subject, Keywords, Description, Category, LastModifiedBy, Company, Application, AppVersion, Created, Modified. Nastavení kteréhokoli z nich naplní při SaveAs docProps/core.xml + docProps/app.xml (jinak si sešit ponechá minimální sadu částí)
ProtectWorkbook / UnProtectWorkbookPřepínač ochrany sešitu s volitelným 16bit legacy hashem hesla a příznaky LockStructure / LockWindows . Promítá se jako <workbookProtection> v xl/workbook.xml
LoadVbaProjectFromFile / VbaProject / HasVbaProject / VbaProjectDefinedLoadVbaProjectFromFile importuje surový payload vbaProject.bin ; VbaProject zpřístupňuje bajty; HasVbaProject i read-only VbaProjectDefined hlásí, zda je payload přítomen. Ukládejte s příponou .xlsm , když mají být makra Excelem povolena
ParsedVBAProjectRead-only naparsovaný view aktuálního payloadu vbaProject.bin . Je-li payload platným OLE VBA úložištěm, vrátí TXLSVBAProject zpřístupňující názvy modulů a zdrojový text; jinak vrátí nil. Surový payload VbaProject zůstává autoritativními bajty používanými pro Roundtrip SaveAs/Open
AddChartSheet(Name, Type, Title)Vytvoří list s příznakem IsChartSheet = True a zaseede Charts[0] s rozumným výchozím anchoresp přes celou stránku. SaveAs zapisuje takové listy do xl/chartsheets/sheetN.xml. Viz TXLSXChart
ParallelParseJe-li True, streamuje multi-sheet Open ZIP položky listů přímo do worker-lokálních inflaterů a XML čteček. Neuchovávají se žádné staging kopie nafouknutého XML listů a zdroj balíčku je uzamčen jen pro každou pozicovanou čtení. Nastavte False pro parsování jednoho listu po druhém. Výchozí je True
ParallelParseThreadsNastaví maximální počet streamů listů parsovaných souběžně během Open. Nula vybere automatický počet workerů a kladné hodnoty nastaví explicitní strop. Pracovní sady aktivních inflaterů a XML čteček jsou tímto počtem ohraničeny
StreamingWriteJe-li True, použije SaveAs WriteWorksheetXmlStreaming pro každý list — cache sheetXmls se nedrží a sharedStrings.xml se emituje poslední, až když SST naplnily všechny listy. V kombinaci s per-row TXLSWideStringBuilder to udržuje paměť lineární na velkých listech. Výchozí je False (stávající chování)
PreserveUnsupportedParts / ClearUnsupportedPartsPreserveUnsupportedParts má výchozí hodnotu True a při Open i SaveAs zachovává neznámé části balíčku dosažitelné přes relace, cizí deklarace namespace workbook rootu, markup-compatibility atributy a kompletní payloady <extLst> na úrovni sešitu. Reference relací uvnitř zachovaného rozšíření se přemapují, když se generovaná ID confligují se zdrojem. Nastavte vlastnost na False před Open, nebo zavolejte ClearUnsupportedParts, chcete-li tento stav zahodit. Diagnostika UnsupportedPartCount a UnsupportedPartBytes počítá zachované části balíčku a nezahrnuje inline metadata XML sešitu
PreserveRawPartsVýchozí hodnota True umožňuje souborovým SaveAs operacím otevřít jednu validovanou privátní zdrojovou archivaci a poté zkopírovat nezměněné theme, VBA, connection, external-link, image, chart, pivot a relacemi dosažitelné neprůhledné položky s jejich původními komprimovanými payloady. Úspěšné souborové uložení ustaví novou čistou základnu pro další ukládání. Streamové sešity, změněný zdrojový soubor, editované payloady, nepodporované kompresní metody a neplatné komprimované velikosti použijí transakční serializační fallback, nebo jsou odmítnuty
SaveAsEncrypted / OpenEncrypted / CanReadEncryptedPodpora zápisu ECMA-376 Standard Encryption SaveAsEncrypted zapíše standard-conforming OLE Compound File kontejner chráněný AES-128 pro neprázdná hesla, s AES-NI akcelerací při dostupnosti a přenositelným softwarovým fallbackem jinak. Zašifrovaný výstup se otevře v Excelu 2007 a novějším heslem, kterým byl uložen. CanReadEncrypted detekuje magické bajty OLE2; OpenEncrypted transparentně spadne na obyčejné Open pro nešifrované soubory a stále vyhodí EXlsxEncryptionNotImplemented pro šifrované balíčky, dokud nespadne podpora dešifrování
SaveAs(FileName)Zapíše sešit do zadaného souboru. Vrací 1 při úspěchu, negativní hodnotu při selhání. Nemá-li sešit žádné listy, přidá se před zápisem výchozí Sheet1 is added before writing
Tento overload i SaveAs(FileName, FileFormat) nejprve připraví výstup do stagingu a teprve potom vymění cíl Selže-li výměna, návratovou hodnotou je -1 a LastDiagnostic hlásí xlsDiagnosticOutputCommitFailed (1005), původní NativeCodez Windows a jeho systémovou chybovou zprávu Starý cíl i FileName sešitu zůstávají nezměněny; dočasný výstup se uvolní a příští uložení vymaže předchozí diagnostiku
SaveAs(FileName, FileFormat)Přijímá xlsxOpenXMLWorkbook pro běžný výstup OOXML, xlsxOpenDocumentSpreadsheet pro ODS, xlsxOpenXMLTemplate pro šablonu XLTX bez maker nebo xlsxOpenXMLMacroEnabledTemplate pro šablonu XLTM, s bufferovaným i streamovaným výstupem podporovaným pro všechny OOXML volby
Šablonový výstup zapisuje application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml pro /xl/workbook.xml; pro soubory použijte příponu .xltx a application/vnd.openxmlformats-officedocument.spreadsheetml.template , když balíček servírujete přes HTTP
Formát je třeba zvolit explicitně: ani přípona souboru, ani importovaná šablona nezmění výchozí výstup SaveAs output
Je-li přítomen VBA projekt, výstup XLTX vrátí -1 s diagnostikou nepodporovaného formátu ještě před zápisem cíle; XLTM zachová existující VBA projekt a přijme i sešit bez maker
SaveAsODS zůstává pojmenovanou zkratkou pro výstup ODS s volitelným řízením přes TODSExportOptions control
GetConversionReport / SaveAsCheckedProzkoumá report konverze známých funkcí vlastněný volajícím a bez mutací, nebo odmítne degradované a zahozené funkce ještě před zápisem, když necháte AllowLossy=False Explicitní ztrátové ukládání i tak odmítne nepodporované konverze; cíle, vlastnictví, diagnostiku a meze zachování popisuje věrnost výpočtu a konverze
SaveAs(Stream) / SaveAs(Stream, FileFormat)Zapíše sešit přímo do libovolného TStream a overload s FileFormat přijímá xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet, xlsxOpenXMLTemplatenebo xlsxOpenXMLMacroEnabledTemplatepro OOXML sešity, ODS tabulky, šablony XLTX či šablony XLTM v paměti
Vrací 1 při úspěchu a ukládání do streamu respektuje RecalcBeforeSave: ruční režim zachová stávající cache vzorců, politiky dirty a always je před serializací obnoví
Vlastnictví streamu zůstává na volajícím; zrušení před začátkem zápisu zachová jeho obsah a pozici, selhání po zahájení serializace může zanechat částečný výstup
Open(FileName)Přečte OOXML archiv .xlsx a nahradí kolekci Sheets jeho obsahem. Vrací 1 při úspěchu
Open(FileName, Password)Rezervováno pro budoucí podporu šifrovaných XLSX. Dnes se chová jako Open(FileName) — heslo se ignoruje
Open(Stream)Přečte OOXML archiv .xlsx z TStream. Vrací 1 při úspěchu
OpenCSV(FileName) / OpenCSV(Stream)Importuje CSV či TSV text do sešitu s automatickou detekcí oddělovače (,, ;, tab či pipe), detekcí kódování UTF-8 / UTF-16 podle BOM, uvozovanými poli ve stylu RFC 4180 a volitelnou inferencí typů hodnot přes overloady ADetectTypes . Volání Open(FileName) na .csv či .tsv se automaticky přesměruje na tento importér. Viz metoda OpenCSV
OpenODS(FileName) / OpenODS(Stream)Importuje balíček OpenDocument Spreadsheet (.ods) ze souboru či streamu. Čtečka načte content.xml, sdílené informace stylů z styles.xmla při přítomnosti i nastavení zobrazení, a zachová názvy listů, skalární hodnoty, cacheované výsledky vzorců, základní konverzi referencí vzorců, opakované řádky/sloupce/buňky, sloučené oblasti, rich text, hypertextové odkazy, komentáře, vložené obrázky, vložené grafy, skryté řádky/sloupce/listy, výšky řádků, šířky sloupců, zděděné/výchozí styly, formáty čísel/data/času/měny/vědecký/zlomek, stav ochrany buňky a listu, pojmenované oblasti, tiskové oblasti, ruční konce stránek, zamrznuté panely, oblasti AutoFilter, skupiny osnov řádků/sloupců, záhlaví/zápatí, ověřování dat včetně promptů, podmíněné formáty včetně formul/color scales/data bars a barvu záložky listu. Plná sémantika OpenFormula, ODS ochranné klíče, geometrie komentářů, pokročilé formátování komentářů a vlastnosti balíčku mimo obsah tabulky se nekonvertují
SaveAsODS(FileName) / SaveAsODS(Stream), with optional TODSExportOptionsUloží sešit jako platný balíček OpenDocument Spreadsheet. Zapisuje přímo ODF mimetype, manifest, metadata, styly i obsah listů a nese typované hodnoty, vzorce, styly, rich text, rozměry, sloučení, hypertextové odkazy, obrázky, grafy, pojmenované oblasti, oblasti AutoFilter, podmíněné formáty, ověřování dat, zamrznuté panely, nastavení stránky, záhlaví/zápatí, tiskové oblasti, ruční konce stránek, skupiny osnov, barvu záložky a viditelnost listů tam, kde je tyto funkce v modelu sešitu HotXLS reprezentovány. Předání voleb exportu, včetně nil, zachovává běžnou politiku přepočtu, zrušení průběhu, diagnostiku a ochranu proti zápisu. Výstup do souboru nejprve zapíše vedlejší soubor a cíl nahradí až po úspěšné serializaci; selhání serializace a zrušení před potvrzením ponechávají předchozí cíl. Hlášení průběhu zapisování ohlásí každou dokončenou tabulku a ppsEnd je závěrečné oznámení, jehož požadavek Abort už nedokáže zrušit dokončené uložení. Streamový výstup zachovává vlastnictví volajícím a obvyklé chování ukládání do streamu, které může po zahájení serializace zanechat částečný výstup
TODSExportOptionsŘídí export ODS. Generator přepíše hodnotu meta:generator v meta.xml; prázdná hodnota použije vestavěný generator řetězec HotXLS. IncludeCharts a IncludeImages mají výchozí True a při False odstraní odpovídající kreslicí rámce, části balíčku a manifest položky společně, takže výstup nemá žádné odkazy na sirotčí grafy či obrázky. Instanci voleb vlastní volající a musí ji uvolnit
GetODSSheetNames(FileName, AList), GetODSSheetNames(Stream, AList)Přečte jen názvy tabulek ODS z content.xml do AList , aniž by resetovala či naplnila sešit. Použijte, když file picker či importní workflow potřebuje názvy listů dřív, než se sešit načte
SaveAsCSV overloadsČtyři overloady (FileName nebo Stream × výchozí aktivní list / explicitní SheetIndex + Delimiter). Zapíše zvolený list jako UTF-8 CSV s BOM. Hodnoty data se renderují jako yyyy-mm-dd hh:nn:ss; buňky se vzorci se před exportem spočítají a text vzorce se použije jen tehdy, když výpočet není k dispozici. Vrací 0 při úspěchu
SaveAsHTML overloadsOverloady s volbami přijímají TXLSXHtmlExportOptions pro Title, WriteDocument, IncludeStyles, IncludeBOMa TableClass. Nastavte WriteDocument na False pro fragment tabulky; IncludeBOM na False při vkládání výstupu do existující UTF-8 odpovědi. Exportovaný výstup nyní zachovává hypertextové odkazy buněk jako anchoresp <a> a ukotvené obrázky jako inline image URI data: ; export na úrovni sešitu zahrnuje anchores i mimo zaplněné buňky. Komentáře buněk se navíc emitují jako escapované atributy <td>title a export na úrovni sešitu zahrnuje anchores pouze-s-komentáři. Je-li IncludeStyles zapnuto, explicitní hodnoty ColWidth se emitují jako šířky <col> a explicitní hodnoty RowHeight jako height styly <tr> . Běhy rich-text buněk se emitují jako escapované elementy <span> s inline styly fontu, barvy, zvýraznění a podtržení, je-li IncludeStyles zapnuto. Ohraničení buněk se emitují jako CSS pravidla border-left, border-right, border-topa border-bottom , je-li IncludeStyles zapnuto. Skryté řádky a sloupce označené RowHidden / ColHidden, plus explicitní sloupce s nulovou šířkou, se v generované tabulce a <colgroup>přeskočí. Nastavení svislého zarovnání se emitují jako CSS pravidla vertical-align , je-li IncludeStyles zapnuto
SaveAsRTF overloadsČtyři overloady (FileName nebo Stream × výchozí aktivní list / explicitní SheetIndex). Zapíše zvolený list jako dokument RTF 1.6 s prostou tabulkou. Šířky sloupců se odvozují z dat ColWidth (1 znaková jednotka ≈ 96 twips; výchozí 809 twips). Aplikuje se bold / italic / velikost fontu per buňka; znaky mimo ASCII se kódují jako RTF unicode escape se znaménkem \uN? . Sloučené buňky se nespojují. Vrací 0 při úspěchu
ActiveSheet1-based index aktivního (vybraného) listu (0, když žádný), odpovídá ActiveSheetIndexClassic XLS engine. SaveAs zapisuje activeTab="N" na <workbookView> (samotný atribut OOXML activeTab zůstává 0-based), když je potřeba emitovat volby zobrazení sešitu, a označí odpovídající list příznakem tabSelected="1"
Minimized / WindowHidden / ShowHorizontalScroll / ShowVerticalScrollPříznaky chrome okna sešitu zapisované do <workbookView>. Minimized zapisuje minimized="1", WindowHidden zapisuje visibility="hidden"a ShowHorizontalScroll / ShowVerticalScroll skrývají či zobrazují posuvníky sešitu. Open provede Roundtrip všech čtyř hodnot
XWindow / YWindow / WindowWidth / WindowHeightGeometrie okna sešitu zapisovaná do <workbookView>. XWindow a YWindow ukládají počátek okna, zatímco WindowWidth a WindowHeight jeho velikost. Hodnoty se oříznou na 0..65535 a projdou Roundtrip při načtení
ShowSheetTabs / TabRatio / FirstSheet / AutoFilterDateGroupingVolby zobrazení okna sešitu zapisované do <workbookView>. ShowSheetTabs skryje či zobrazí lištu záložek listů, TabRatio řídí rozdělení šířky mezi lištu záložek a posuvník a ořezává na 0..1000, FirstSheet vybere první viditelnou záložku jako 0-based index listu a ořezává na existující list a AutoFilterDateGrouping řídí seskupování dat v AutoFilter dropdownech Excelu. Open provede Roundtrip všech čtyř hodnot
Date1904Základ data sešitu. False (výchozí) = epocha Windows 1900; True = epocha Mac 1904 (posune každé datumové sériové číslo o 1462 dní). Nastavte to před přiřazováním hodnot buněk TDateTime , aby Excel vykreslil stejné kalendářní datum
Iterate / IterateCount / IterateDeltaŘídí iterativní výpočet kruhových referencí. IterateCount se ořezává na 1..32767 a má výchozí 100. IterateDelta přijímá nezáporná konečná hodnoty a má výchozí 0.001. Nevýchozí limity přetrvávají, i když je Iterate aktuálně False
CalcMode / RefMode / CalcIdŘídí výpočetní režim sešitu, styl referencí vzorců a identitu výpočetního enginu. CalcMode přijímá auto, manualnebo autoNoTableRefMode přijímá A1 nebo R1C1 , s vstupem bez rozlišení velikosti písmen a kanonickým výstupem Moderní výstup rich chyb používá emitovaný CalcId nejméně 191029, aby Excel interpretoval cacheované moderní chyby; vyšší požadované hodnoty se zachovají a vlastnost v paměti zůstává nezměněná
FullCalcOnLoad / ForceFullCalc / CalcCompleted / CalcOnSave / FullPrecisionŘídí kompletní přepočet, dokončení cacheovaného výpočtu, přepočet před uložením a politiku přesnosti. Každá nevýchozí hodnota nezávisle emituje a projde Roundtripem odpovídající atribut <calcPr> attribute
ConcurrentCalc / ConcurrentManualCountŘídí souběžný výpočet sešitu a ruční hint počtu workerů. ConcurrentManualCount se ořezává na nulu a více
SourceFormatHlásí rodinu balíčku načtenou posledním úspěšným voláním Open či OpenODS a vrací xlsxOpenXMLWorkbook pro sešity a šablony OOXML včetně XLTX a XLTM, xlsxOpenDocumentSpreadsheet pro ODS a xlsxExcelBinaryWorkbook pro podporovanou podmnožinu XLSB values-and-styles
Nově vytvořený sešit hlásí xlsxOpenXMLWorkbook, dokud se neotevře soubor, a tato vlastnost nevolí výstupní formát
IndexedColor[Index]Hodnota ARGB pro zadaný slot palety indexovaných barev OOXML (0..63). Čtení vrátí uživatelský override, je-li nastaven, jinak vestavěný default OOXML (XlsxDefaultIndexedPalette). Zápis přepíše slot N; SaveAs pak emituje kompletní blok <indexedColors> se všemi 64 sloty
ResolveIndexedColorKlasifikuje veřejné barevné indexy, hodnoty BIFF icv či indexované barvy OOXML a rozřeší normalizovanou hodnotu ARGB, když ji dodá paleta sešitu nebo explicitní callback systémové barvy
NearestIndexedColorVrací nejbližší položku fyzické palety přes sdílený cacheovaný OKLab matcher, aniž by měnil paletu či stav sešitu
ScanIndexedColorUsageVrací deterministický 56slotový inventář s barvami palety, počty definic a referencí, druhy konzumentů a zámky zachování, aniž by materializoval buňky či měnil stav sešitu
BuildBiffPalettePlanVrací plán 56slotové BIFF palety bez mutací, se zamčenými sloty, agregovanými true-color cíli, deterministickými mapováními, identitou zdroje a váženou OKLab statistikou chyb
ApplyBiffPalettePlanValiduje identitu zdroje, metadata slotů, zámky a neprůhledné cíle, než atomicky aplikuje všechny změněné položky palety a jednorázově znovu postaví cacheovaný matcher
HasCustomIndexedColor / CustomIndexedColorCount / ResetIndexedColorsHasCustomIndexedColor(N) vrací True , když byl slot N explicitně přepsán. CustomIndexedColorCount vrací počet přepsaných slotů (0 = SaveAs neemituje blok <colors> ). ResetIndexedColors zahodí každý override a obnoví výchozí paletu
ExternalLinksKolekce odkazů na externí sešity. Každá položka TXLSXExternalLink drží Target URL a seznam SheetNames . SaveAs emituje blok <externalReferences> v xl/workbook.xml a odpovídající části xl/externalLinks/ . Open provede Roundtrip Target a SheetNames; cacheované hodnoty buněk uvnitř <sheetDataSet> se nezachovávají
CreateWorkspaceWorkbookVrací odvolatelný adaptér IXLSWorkspaceWorkbook pro tento sešit. Adaptér zachovává identitu zdroje sešitu a generaci a odpojí se, než je model sešitu zničen
ExternalWorkspaceThread-safe registrace zachovávající cesty, konzumovaná live evaluací externích vzorců. Přesné identity a aliasy mají přednost, nejednoznačné vyhledávání podle basename je odmítnuto a normalizace identity neprovede žádný implicitní přístup k souboru či síti. Viz Live workbook workspace
RegisterExternalWorkbook / UnregisterExternalWorkbookKompatibilní fasáda nad ExternalWorkspace . Registrace namapuje jednoznačný dodaný název na uložený cíl relace sešitu, udržuje cesty a přípony odlišné a odmítá kolize. Zrušení registrace odstraní požadovanou registraci; zničení cíle také bezpečně odvolá adaptér

Příklad

Zápis a opětovné otevření sešitu:
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;
    

Viz také