.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
type
TXLSXFileFormat = (xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet,
xlsxOpenXMLTemplate, xlsxOpenXMLMacroEnabledTemplate, xlsxExcelBinaryWorkbook);
TODSExportOptions = class
constructor Create;
property Generator: WideString;
property IncludeCharts: Boolean;
property IncludeImages: Boolean;
end;
TXLSXWorkbook = class
constructor Create;
destructor Destroy; override;
function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload;
function CreateLoadedCellCursor(AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
function CreateReadOnlyView: IXLSReadOnlyWorkbookView;
property RenderCalibration: TXLSRenderCalibration;
function CaptureRenderCalibration: TXLSRenderCalibration;
procedure ResetRenderCalibration;
function CreateRenderGeometry(ABackend: TXLSRenderGeometryBackend;
ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
function SaveAs(const FileName: WideString): Integer; overload;
function SaveAs(const FileName: WideString; FileFormat: TXLSXFileFormat): Integer; overload;
function SaveAs(Stream: TStream): Integer; overload;
function SaveAs(Stream: TStream; FileFormat: TXLSXFileFormat): Integer; overload;
function GetConversionReport(ATarget: TXLSConversionTarget): TXLSConversionReport;
function SaveAsChecked(Stream: TStream; FileFormat: TXLSXFileFormat;
AllowLossy: Boolean = False): Integer; overload;
function SaveAsChecked(const FileName: WideString; FileFormat: TXLSXFileFormat;
AllowLossy: Boolean = False): Integer; overload;
function Open(const FileName: WideString): Integer; overload;
function Open(const FileName: WideString; const Password: WideString): Integer; overload;
function Open(Stream: TStream): Integer; overload;
function OpenCSV(const FileName: WideString): Integer; overload;
function OpenCSV(const FileName: WideString; ASeparator: WideChar;
ADetectTypes: Boolean): Integer; overload;
function OpenCSV(Stream: TStream): Integer; overload;
function OpenCSV(Stream: TStream; ASeparator: WideChar;
ADetectTypes: Boolean): Integer; overload;
function OpenODS(const FileName: WideString): Integer; overload;
function OpenODS(Stream: TStream): Integer; overload;
function SaveAsODS(const FileName: WideString): Integer; overload;
function SaveAsODS(Stream: TStream): Integer; overload;
function SaveAsODS(const FileName: WideString; Options: TODSExportOptions): Integer; overload;
function SaveAsODS(Stream: TStream; Options: TODSExportOptions): Integer; overload;
function GetODSSheetNames(const FileName: WideString; AList: TStrings): Integer; overload;
function GetODSSheetNames(Stream: TStream; AList: TStrings): Integer; overload;
function GetSheetNames(const FileName: WideString; AList: TStrings): Integer; overload;
function GetSheetNames(Stream: TStream; AList: TStrings): Integer; overload;
function SaveAsCSV(const FileName: WideString): Integer; overload;
function SaveAsCSV(const FileName: WideString; SheetIndex: Integer; Delimiter: WideChar): Integer; overload;
function SaveAsCSV(Stream: TStream): Integer; overload;
function SaveAsCSV(Stream: TStream; SheetIndex: Integer; Delimiter: WideChar): Integer; overload;
function SaveAsHTML(const FileName: WideString): Integer; overload;
function SaveAsHTML(const FileName: WideString; Options: TXLSXHtmlExportOptions): Integer; overload;
function SaveAsHTML(const FileName: WideString; SheetIndex: Integer): Integer; overload;
function SaveAsHTML(const FileName: WideString; SheetIndex: Integer; Options: TXLSXHtmlExportOptions): Integer; overload;
function SaveAsHTML(Stream: TStream): Integer; overload;
function SaveAsHTML(Stream: TStream; Options: TXLSXHtmlExportOptions): Integer; overload;
function SaveAsHTML(Stream: TStream; SheetIndex: Integer): Integer; overload;
function SaveAsHTML(Stream: TStream; SheetIndex: Integer; Options: TXLSXHtmlExportOptions): Integer; overload;
function SaveAsRTF(const FileName: WideString): Integer; overload;
function SaveAsRTF(const FileName: WideString; SheetIndex: Integer): Integer; overload;
function SaveAsRTF(Stream: TStream): Integer; overload;
function SaveAsRTF(Stream: TStream; SheetIndex: Integer): Integer; overload;
// AES encryption (ECMA-376 Standard Encryption) write path.
// OpenEncrypted still raises for encrypted packages.
function SaveAsEncrypted(const FileName, APassword: WideString): Integer;
function OpenEncrypted(const FileName, APassword: WideString): Integer;
function CanReadEncrypted(const FileName: WideString): Boolean;
function Calculate(const Formula: WideString): Variant;
function CalculateAndVerify: Integer; overload;
function CalculateAndVerify(out AMismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
property OnUserFunction: TXLSUserFunctionEvent;
property OnUserFunctionEx: TXLSUserFunctionExEvent;
property AllowUnsafeFormulaCallbacks: Boolean;
// Document properties (docProps/core.xml + docProps/app.xml).
property Title, Author, Subject, Keywords, Description,
Category, LastModifiedBy, Company,
Application, AppVersion: WideString;
property Created, Modified: TDateTime;
// Workbook protection (16-bit legacy hash).
procedure ProtectWorkbook; overload;
procedure ProtectWorkbook(const APassword: WideString); overload;
procedure ProtectWorkbook(const APassword: WideString; ALockStructure, ALockWindows: Boolean); overload;
procedure UnProtectWorkbook;
property IsWorkbookProtected: Boolean;
property LockStructure, LockWindows: Boolean;
// VBA project payload (round-trips byte-for-byte). Workbook is saved
// with macro-enabled content type when HasVbaProject is True.
procedure LoadVbaProjectFromFile(const AFileName: WideString);
procedure ClearVbaProject;
function HasVbaProject: Boolean;
property VbaProjectDefined: Boolean;
property VbaProject: AnsiString;
property ParsedVBAProject: TXLSVBAProject;
// Unknown package and workbook extension preservation
procedure ClearUnsupportedParts;
function UnsupportedPartCount: Integer;
function UnsupportedPartBytes: Int64;
property PreserveUnsupportedParts: Boolean;
// Chart sheet helper — creates a sheet flagged IsChartSheet and
// seeds Charts[0] with a default full-page anchor.
function AddChartSheet(const AName: WideString;
AChartType: TXLSXChartType; const ATitle: WideString): TXLSXWorksheet;
// Streaming SaveAs path (TXLSWideStringBuilder + one sheet at a time).
property StreamingWrite: Boolean;
// Streaming parallel Open path
property ParallelParse: Boolean;
property ParallelParseThreads: Integer;
// Workbook-level collections.
property ActiveSheet: Integer;
property Minimized: Boolean;
property WindowHidden: Boolean;
property ShowHorizontalScroll: Boolean;
property ShowVerticalScroll: Boolean;
property ShowSheetTabs: Boolean;
property XWindow: Integer;
property YWindow: Integer;
property WindowWidth: Integer;
property WindowHeight: Integer;
property TabRatio: Integer;
property FirstSheet: Integer;
property AutoFilterDateGrouping: Boolean;
property Date1904: Boolean;
// Workbook calculation policy
property Iterate: Boolean;
property IterateCount: Integer;
property IterateDelta: Double;
property CalcId: Integer;
property FullCalcOnLoad: Boolean;
property CalcMode: WideString;
property RefMode: WideString;
property ForceFullCalc: Boolean;
property CalcCompleted: Boolean;
property CalcOnSave: Boolean;
property FullPrecision: Boolean;
property ConcurrentCalc: Boolean;
property ConcurrentManualCount: Integer;
function CreateWorkspaceWorkbook: IXLSWorkspaceWorkbook;
procedure RegisterExternalWorkbook(const AWorkbookName: WideString;
AWorkbook: TXLSXWorkbook);
procedure UnregisterExternalWorkbook(const AWorkbookName: WideString);
property SourceFormat: TXLSXFileFormat;
property IndexedColor[Index: Integer]: LongWord;
function NearestIndexedColor(AArgb: LongWord;
out AMatch: TXLSNearestIndexedColorMatch): Boolean;
function ScanIndexedColorUsage: TXLSIndexedColorUsageArray;
function BuildBiffPalettePlan: TXLSBiffPalettePlan;
function ApplyBiffPalettePlan(
const APlan: TXLSBiffPalettePlan): Boolean;
function HasCustomIndexedColor(Index: Integer): Boolean;
function CustomIndexedColorCount: Integer;
procedure ResetIndexedColors;
property Sheets: TXLSXSheets;
property Fonts: TXLSXFonts;
property Fills: TXLSXFills;
property Borders: TXLSXBorders;
property NumberFormats: TXLSXNumberFormats;
property Alignments: TXLSXAlignments;
property DefinedNames: TXLSXDefinedNames;
property ExternalLinks: TXLSXExternalLinks;
property ExternalWorkspace: TXLSWorkbookWorkspace;
end;
| Sheets | Kolekce listů. Viz TXLSXSheets |
| Fonts | Paleta 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 |
| Fills | Paleta 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 |
| Borders | Paleta 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 |
| NumberFormats | Paleta 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 |
| DefinedNames | Pojmenované oblasti na úrovni sešitu (s rozsahem na sešit nebo na list). Viz TXLSXDefinedName / TXLSXDefinedNames |
| Calculate | Zkompiluje 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í |
| CreateLoadedCellCursor | Vytvoří 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 |
| CreateReadOnlyView | Vytvoří 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, ComputeSemanticHash | Streamuje 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, ResetRenderCalibration | Atomicky 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 |
| CreateRenderGeometry | Vytvoří 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, OnUserFunctionEx | Callback používaný Calculate , když vzorec volá vlastní či nepodporovanou funkci. Viz
OnUserFunction / OnUserFunctionEx callback |
| AllowUnsafeFormulaCallbacks | Vý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 |
| Alignments | Paleta 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 properties | Title, 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 / UnProtectWorkbook | Př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 / VbaProjectDefined | LoadVbaProjectFromFile 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 |
| ParsedVBAProject | Read-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 |
| ParallelParse | Je-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 |
| ParallelParseThreads | Nastaví 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 |
| StreamingWrite | Je-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 / ClearUnsupportedParts | PreserveUnsupportedParts 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 |
| PreserveRawParts | Vý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 / CanReadEncrypted | Podpora 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 writingTento 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 HTTPFormát je třeba zvolit explicitně: ani přípona souboru, ani importovaná šablona nezmění výchozí výstup SaveAs outputJe-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 makerSaveAsODS zůstává pojmenovanou zkratkou pro výstup ODS s volitelným řízením přes TODSExportOptions control |
| GetConversionReport / SaveAsChecked | Prozkoumá 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ětiVrací 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 TODSExportOptions | Uloží 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 overloads | Overloady 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 |
| ActiveSheet | 1-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 / ShowVerticalScroll | Pří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 / WindowHeight | Geometrie 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 / AutoFilterDateGrouping | Volby 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 |
| Date1904 | Zá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 |
| SourceFormat | Hlá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-stylesNově 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 |
| ResolveIndexedColor | Klasifikuje 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 |
| NearestIndexedColor | Vrací nejbližší položku fyzické palety přes sdílený cacheovaný OKLab matcher, aniž by měnil paletu či stav sešitu |
| ScanIndexedColorUsage | Vrací 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 |
| BuildBiffPalettePlan | Vrací 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 |
| ApplyBiffPalettePlan | Validuje 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 / ResetIndexedColors | HasCustomIndexedColor(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 |
| ExternalLinks | Kolekce 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í |
| CreateWorkspaceWorkbook | Vrací 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 |
| ExternalWorkspace | Thread-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 / UnregisterExternalWorkbook | Kompatibilní 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 |
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;