HotXLS-dokumentation

klass TXLSXWorkbook

Toppnivåcontainer för en Excel 2007+ (.xlsx) arbetsbok. Deklarerad i lxHandleX. Innehåller en TXLSXSheets -samling och tillhandahåller SaveAs- / Open-ingångar för OOXML-arbetsböcker, CSV / TSV-import samt OpenDocument Spreadsheet -läs-/skrivflöden (.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;
      

Medlemmar

Sheets Kalkylbladssamling. Se TXLSXSheets
Fonts Typsnittspalett på arbetsboksnivå. Celler väljer typsnitt genom att sätta TXLSXCell.FontIndex till ett 1-baserat index i denna samling. Se TXLSXFont / TXLSXFonts
Fills Fyllnadspalett på arbetsboksnivå. Celler väljer fyllnad genom att sätta TXLSXCell.FillIndex till ett 1-baserat index i denna samling. Se TXLSXFill / TXLSXFills
Borders Rampalett på arbetsboksnivå. Celler väljer ram genom att sätta TXLSXCell.BorderIndex till ett 1-baserat index i denna samling. Se TXLSXBorder / TXLSXBorders
NumberFormats Palett för anpassade talformat på arbetsboksnivå. Celler väljer format genom att sätta TXLSXCell.NumberFormatIndex till ett 1-baserat index i denna samling. Se TXLSXNumberFormat / TXLSXNumberFormats
DefinedNames Namngivna områden på arbetsboksnivå (med omfattning arbetsbok eller blad). Se TXLSXDefinedName / TXLSXDefinedNames
Calculate Kompilerar och utvärderar en Excel-formelsträng mot det aktiva bladet; ett inledande = accepteras. Cellreferenser, områden, formler som lagrats i refererade celler, korsbladsreferenser, nästlade formeldefinierade namn, broadcast-arrayer med per-cell-fel, multivariabla regressions- och prediktionsarrayer samt stödda text-, datum-, arbetsdag-, ingenjörs-/bas konverterings-, bitvisa, statistiska, aggregerande och matematiska funktioner utvärderas via HotXLS gemensamma formelmotor. Se OnUserFunction för att hantera anpassade eller ej stödda funktioner
CreateLoadedCellCursor Skapar en tillståndskonstant markör i radordning över lagrade XLSX-värden och formler, med en överlagring som också emitterar oberoende formaterade tomma celler som xlckBlank. Glesa block och packad lagring traverseras utan att den packade representationen materialiseras. Se metoden CreateLoadedCellCursor
CreateReadOnlyView Skapar en vy med konstant åtkomsttid över den delade modellen, med eget aktivt blad, värdekopierade ögonblicksbilder, cachade formelresultat, frivillig isolerad formelutvärdering, direkta packade cellavläsningar, referensräknad livstid via IXLSXWorkbookOwner och fail-fast-skrivuteslutning; IXLSReadOnlyWorkbookView rapporterar också SheetCount för anropare som räknar blad utan att röra arbetsboksmodellen. Se metoden CreateReadOnlyView
SaveSemanticSnapshot, ComputeSemanticHash Strömmar en versionerad kanonisk representation av arbetsbokssemantik eller beräknar dess SHA-256 i gemener utan att materialisera hela ögonblicksbilden. Se metoderna för semantisk ögonblicksbild och hash
RenderCalibration, CaptureRenderCalibration, ResetRenderCalibration Tilldelar atomärt en validerad renderkalibrering, fångar en oberoende värdeögonblicksbild för en enda operation eller återställer standardvärden; körtidskonfigurationen serialiseras inte och ändrar i sig inte kalkylbladets rad- eller kolumnstorlekar. Se värden och ögonblicksbilder för renderkalibrering
CreateRenderGeometry Skapar en operation-ägd geometri- och typmätningstjänst med oföränderlig kalibrering, arbetsboksgenerering och backend-identitet, plus en avgränsad lokal cache; AutoFit fångar en tjänst per operation och paginering en per bygge utan att skriva kalkylbladsmått. Se rendergeometri och typsnittsmätning
OnUserFunction, OnUserFunctionEx Callback som Calculate använder när en formel anropar en anpassad eller ej stödd funktion. Se OnUserFunction / OnUserFunctionEx-callback
AllowUnsafeFormulaCallbacks Default är false och hindrar farliga externa eller makroliknande funktionsnamn från att nå användarfunktionshanterare innan argumenten utvärderas. Se säkerhetspolicyn för callbacks
GetSheetNames(FileName, AList), GetSheetNames(Stream, AList) Läser xl/workbook.xml och lägger till kalkylbladsnamn i AList i arbetsboksordning utan att läsa in kalkylblads-XML. Strömöverlagringen förväntar sig en komplett XLSX-paketström. Returnerar antalet lästa namn, eller -1 när paketet inte kan öppnas
Alignments Palett för celljustering på arbetsboksnivå. Celler väljer post genom att sätta TXLSXCell.AlignmentIndex till ett 1-baserat index i denna samling. Se TXLSXAlignment
Document properties Title, Author, Subject, Keywords, Description, Category, LastModifiedBy, Company, Application, AppVersion, Created, Modified. Sätter man någon av dem populeras docProps/core.xml + docProps/app.xml vid SaveAs (annars behåller arbetsboken den minimala uppsättningen delar)
ProtectWorkbook / UnProtectWorkbook Växling av arbetsboksskydd med valfri 16-bitars äldre lösenordshash och flaggorna LockStructure / LockWindows. Återspeglas som <workbookProtection> i xl/workbook.xml
LoadVbaProjectFromFile / VbaProject / HasVbaProject / VbaProjectDefined LoadVbaProjectFromFile importerar en rå vbaProject.bin-nyttolast; VbaProject exponerar byte:na; HasVbaProject och skrivskyddade VbaProjectDefined rapporterar båda om en nyttolast finns. Spara med filtillägget .xlsm när Excel ska aktivera makron
ParsedVBAProject Skrivskyddad tolkad vy av aktuell vbaProject.bin-nyttolast. Är nyttolasten en giltig OLE VBA-lagring returneras en TXLSVBAProject med modulnamn och källtext, annars nil. Den råa VbaProject-nyttolasten förblir de auktoritativa byte som används vid SaveAs/Open-roundtrip
AddChartSheet(Name, Type, Title) Skapar ett kalkylblad flaggat IsChartSheet = True och ser till att Charts[0] får en vettig standardförankring för hel sida. SaveAs skriver sådana blad till xl/chartsheets/sheetN.xml. Se TXLSXChart
ParallelParse När True strömmar flerblads-Open kalkylblads-ZIP-poster direkt till worker-lokala inflaters och XML-läsare. Inga mellanlagrade kopior av uppblåst kalkylblads-XML behålls, och paketkällan låses bara för varje positionerad läsning. Sätt False för att tolka ett kalkylblad i taget. Standard är True
ParallelParseThreads Sätter maximalt antal kalkylbladsströmmar som tolkas samtidigt under Open. Noll väljer automatiskt antal worker, positiva värden sätter ett explicit tak. Arbetssmängden för aktiva inflaters och XML-läsare begränsas av detta tal
StreamingWrite När True använder SaveAs WriteWorksheetXmlStreaming per blad — ingen sheetXmls-cache hålls, och sharedStrings.xml skrivs sist efter att varje blad fyllt SST. Tillsammans med per-rad TXLSWideStringBuilder håller detta minnesanvändningen linjär på stora blad. Standard är False (befintligt beteende)
PreserveUnsupportedParts / ClearUnsupportedParts PreserveUnsupportedParts är default True och behåller okända paketdelar som når via relationer plus främmande namnrymdsdeklarationer på arbetsboksroten, attribut för markup-kompatibilitet och kompletta <extLst>-nyttolaster på arbetsboksnivå under Open och SaveAs. Relationsreferenser inuti den bevarade utbyggnadsnyttolasten mappas om när genererade ID krockar med källan. Sätt egenskapen till False före Open, eller anropa ClearUnsupportedParts, för att kasta detta tillstånd. Diagnostikerna UnsupportedPartCount och UnsupportedPartBytes räknar bevarade paketdelar och inkluderar inte inline-metadata i arbetsboks-XML
PreserveRawParts Default är True och låter filbaserade SaveAs-operationer öppna ett validerat privat källarkiv och därefter kopiera oförändrade tema-, VBA-, anslutnings-, externlänk-, bild-, diagram-, pivot- och övriga relationerbara ogenomskinliga poster med sina ursprungliga komprimerade nyttolaster. Lyckade filsparningar etablerar en ny ren baslinje för senare sparningar. Strömbaserade arbetsböcker, ändrad källfil, redigerade nyttolaster, ej stödda komprimeringsmetoder och ogiltiga komprimerade storleker använder transaktionell serialiseringsfallback eller avvisning
SaveAsEncrypted / OpenEncrypted / CanReadEncrypted ECMA-376 Standard Encryption, skrivstöd: SaveAsEncrypted skriver en standardkonform AES-128-skyddad OLE Compound File-container för icke-tomma lösenord, med AES-NI-acceleration när det finns och en portabel mjukvarufallback annars. Den krypterade utdaten öppnas i Excel 2007 och senare med lösenordet som användes vid sparandet. CanReadEncrypted känner igen OLE2-magic bytes; OpenEncrypted faller transparent tillbaka till vanlig Open för okrypterade filer och kastar fortfarande EXlsxEncryptionNotImplemented för krypterade paket tills dekrypteringsstöd landat
SaveAs(FileName) Skriver arbetsboken till angiven fil. Returnerar 1 vid lyckat resultat, negativt vid fel. Har arbetsboken inga blad läggs ett default-Sheet1 till före skrivning
Denna överlagring och SaveAs(FileName, FileFormat) mellanlagrar utdata innan målet ersätts Misslyckas ersättningen är returvärdet -1 och LastDiagnostic rapporterar xlsDiagnosticOutputCommitFailed (1005), ursprunglig Windows-NativeCode och systemets felmeddelande Den gamla målfilen och arbetsbokens FileName förblir oförändrade; mellanlagrad utdata frigörs, och en senare sparning rensar den tidigare diagnosen
SaveAs(FileName, FileFormat) Accepterar xlsxOpenXMLWorkbook för vanlig OOXML-utdata, xlsxOpenDocumentSpreadsheet för ODS, xlsxOpenXMLTemplate för en makrofri XLTX-mall eller xlsxOpenXMLMacroEnabledTemplate för en XLTM-mall; buffrad och strömmande utdata stöds för alla OOXML-val
Mallutdata skriver application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml för /xl/workbook.xml; använd filändelsen .xltx för filer och application/vnd.openxmlformats-officedocument.spreadsheetml.template när paketet serveras över HTTP
Formatet måste väljas explicit: vare sig filändelsen eller en importerad mall ändrar standardutdata från SaveAs
Finns ett VBA-projekt returnerar XLTX-utdata -1 med en diagnostik för format som inte stöds innan målet skrivs; XLTM bevarar ett befintligt VBA-projekt och accepterar även en arbetsbok utan makron
SaveAsODS förblir den namngivna genvägen för ODS-utdata med valfri TODSExportOptions-styrning
GetConversionReport / SaveAsChecked Granska en anroparägd, mutationsfri rapport om kända funktionskonverteringar, eller avvisa försämrade och borttagna funktioner innan skrivning genom att låta AllowLossy=False Explicit förlustig sparning avvisar fortfarande konverteringar som inte stöds; se beräknings- och konverteringstrohet för gränserna för mål, ägande, diagnostik och bevarande
SaveAs(Stream) / SaveAs(Stream, FileFormat) Skriver arbetsboken direkt till valfri TStream, och överlagringen med FileFormat accepterar xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet, xlsxOpenXMLTemplate eller xlsxOpenXMLMacroEnabledTemplate för OOXML-arbetsböcker, ODS-kalkylblad, XLTX-mallar eller XLTM-mallar i minnet
Returnerar 1 vid lyckat resultat, och strömsparningar följer RecalcBeforeSave: manuellt läge bevarar befintliga formelcachar, medan policyerna dirty och always uppdaterar dem före serialisering
Anroparen behåller ägandet av strömmen; en avbrytning innan skrivningen börjar bevarar dess innehåll och position, medan ett fel efter att serialiseringen startat kan lämna partiell utdata
Open(FileName) Läser ett OOXML-.xlsx-arkiv och ersätter Sheets-samlingen med dess innehåll. Returnerar 1 vid lyckat resultat
Open(FileName, Password) Reserverad för framtida stöd för krypterad XLSX. Beter sig idag som Open(FileName) — lösenordet ignoreras
Open(Stream) Läser ett OOXML-.xlsx-arkiv från en TStream. Returnerar 1 vid lyckat resultat
OpenCSV(FileName) / OpenCSV(Stream) Importerar CSV- eller TSV-text till arbetsboken med automatisk avgränsardetektering (,, ;, tabb eller pipe), BOM-baserad detektering av UTF-8/UTF-16, RFC 4180-liknande citerade fält och valfri värdestypinferens via ADetectTypes-överlagringarna. Anrop av Open(FileName) med .csv eller .tsv dirigeras automatiskt hit. Se metoden OpenCSV
OpenODS(FileName) / OpenODS(Stream) Importerar ett OpenDocument Spreadsheet-paket (.ods) från fil eller ström. Läsaren läser in content.xml, delad stilinformation från styles.xml och vyinställningar när de finns, och bevarar bladnamn, skalära värden, cachade formelresultat, grundläggande formelreferenskonvertering, upprepade rader/kolumner/celler, sammanslagna områden, rich text, hyperlänkar, kommentarer, inbäddade bilder, inbäddade diagram, dolda rader/kolumner/blad, radhöjder, kolumnbredder, ärvda/default-stilar, tal-/datum-/tids-/valuta-/vetenskapliga/bråktalformat, cell- och bladskydd, namngivna områden, utskriftsområden, manuella sidbrytningar, frusna rutor, AutoFilter-områden, rad-/kolumndispositionsgrupper, sidhuvuden/sidfötter, datavalideringar inklusive prompts, villkorsstyrd formatering inklusive formler/färgskalor/databara samt bladflikens färg. Full OpenFormula-semantik, ODS-skyddsnycklar, kommentarsgeometri, avancerad kommentarsformatering och paketfunktioner utanför kalkylbladsinnehållet konverteras inte
SaveAsODS(FileName) / SaveAsODS(Stream), with optional TODSExportOptions Sparar arbetsboken som ett giltigt OpenDocument Spreadsheet-paket. Den skriver ODF mimetype, manifest, metadata, stilar och kalkylbladsinnehåll direkt och för med typade värden, formler, stilar, rich text, dimensioner, sammanslagningar, hyperlänkar, bilder, diagram, namngivna områden, AutoFilter-områden, villkorsstyrd formatering, datavalideringar, frusna rutor, sidinställning, sidhuvuden/sidfötter, utskriftsområden, manuella sidbrytningar, dispositionsgrupper, flikfärg och bladsynlighet där dessa funktioner finns i HotXLS arbetsboksmodell. Om exportalternativ skickas in, inklusive nil, behålls den normala omberäkningspolicyn, avbrytning under förloppet, diagnostik och skrivskydd. Filutdata stegar en syskonfil och ersätter destinationen först efter lyckad serialisering; serialiseringsfel och avbrytning före commit bevarar den tidigare destinationen. Skrivförloppet rapporterar varje färdig tabell, och ppsEnd är en avslutande avisering vars Abort-begäran inte kan avbryta en redan färdig sparning. Strömutdata behåller anroparens ägande och det vanliga strömsparbeteendet, vilket kan lämna partiell utdata efter att serialiseringen påbörjats
TODSExportOptions Styr ODS-export. Generator åsidosätter värdet meta:generator i meta.xml; tomt värde använder den inbyggda HotXLS-generatorsträngen. IncludeCharts och IncludeImages är default True och tar när False bort motsvarande ritningsramar, paketdelar och manifestposter tillsammans, så att utdata inte får föräldralösa diagram- eller bildreferenser. Anroparen äger optionsinstansen och måste frigöra den
GetODSSheetNames(FileName, AList), GetODSSheetNames(Stream, AList) Läser endast ODS-tabellnamn från content.xml till AList utan att nollställa eller fylla arbetsboken. Använd den när en filväljare eller ett importflöde behöver bladnamn innan arbetsboken läses in
SaveAsCSV overloads Fyra överlagringar (FileName eller Stream × default aktivt blad / explicit SheetIndex + Delimiter). Skriver valt blad som UTF-8-CSV med BOM. Datumvärden renderas som yyyy-mm-dd hh:nn:ss; formelceller beräknas före export och formeltext används bara när beräkning inte är möjlig. Returnerar 0 vid lyckat resultat
SaveAsHTML overloads Optionsöverlagringarna accepterar TXLSXHtmlExportOptions för Title, WriteDocument, IncludeStyles, IncludeBOM och TableClass. Sätt WriteDocument till False för ett tabellfragment; sätt IncludeBOM till False när utdata bäddas in i ett befintligt UTF-8-svar. Exporten bevarar cellhyperlänkar som <a>-ankare och förankrade bilder som inline data:-bild-URI:er; export på arbetsboksnivå inkluderar ankare utanför ifyllda celler. Cellkommentarer emitseras också som escapade title-attribut på <td>, och export på arbetsboksnivå inkluderar ankare med endast kommentarer. När IncludeStyles är på emitseras explicita ColWidth-värden som <col>-bredder och explicita RowHeight-värden som höjdstilar på <tr>. Rich-text-körningar i celler emitseras som escapade <span>-element med inline-stilar för typsnitt, färg, betoning och understrykning när IncludeStyles är på. Cellramar emitseras som CSS-reglerna border-left, border-right, border-top och border-bottom när IncludeStyles är på. Dolda rader och kolumner markerade med RowHidden / ColHidden, plus explicita nollbreda kolumner, hoppas över i genererad tabell och <colgroup>. Vertikaljustering emitseras som CSS-regeln vertical-align när IncludeStyles är på
SaveAsRTF overloads Fyra överlagringar (FileName eller Stream × default aktivt blad / explicit SheetIndex). Skriver valt blad som ett RTF 1.6-dokument med en enkel tabell. Kolumnbredder härleds från ColWidth-data (1 teckenenhet ≈ 96 twips; default 809 twips). Fet/kursiv/typsnittsstorlek appliceras per cell; icke-ASCII-tecken kodas som RTF-unicode-escapes \uN? med 16-bitars värde. Sammanslagna celler spänner inte över kolumner. Returnerar 0 vid lyckat resultat
ActiveSheet 1-baserat index för aktivt (valt) blad (0 inget), motsvarande det klassiska XLS-motorns ActiveSheetIndex. SaveAs skriver activeTab="N" på <workbookView> (attributet activeTab i OOXML är själv 0-baserat) när arbetsboksvyalternativ behöver emitseras, och markerar motsvarande blad med tabSelected="1"
Minimized / WindowHidden / ShowHorizontalScroll / ShowVerticalScroll Flaggor för arbetsboksfönstrets inramning som skrivs till <workbookView>. Minimized skriver minimized="1", WindowHidden skriver visibility="hidden", och ShowHorizontalScroll / ShowVerticalScroll döljer eller visar arbetsbokens rullningslister. Open round-trip:ar alla fyra värden
XWindow / YWindow / WindowWidth / WindowHeight Geometri för arbetsboksfönstret som skrivs till <workbookView>. XWindow och YWindow lagrar fönstrets ursprung, medan WindowWidth och WindowHeight lagrar dess storlek. Värdena begränsas till 0..65535 och round-trip:ar vid inläsning
ShowSheetTabs / TabRatio / FirstSheet / AutoFilterDateGrouping Visningsalternativ för arbetsboksfönstret som skrivs till <workbookView>. ShowSheetTabs döljer eller visar bladflikens rad, TabRatio styr fördelningen av bredd mellan flikrad och rullningslist och begränsas till 0..1000, FirstSheet väljer första synliga flik som 0-baserat bladindex och begränsas till ett befintligt blad, och AutoFilterDateGrouping styr Excels datumgruppering i AutoFilter-rullgardiner. Open round-trip:ar alla fyra värden
Date1904 Arbetsbokens bas för datum. False (default) = Windows 1900-epok; True = Mac 1904-epok (skjuter alla datumserier med 1462 dagar). Sätt detta före du tilldelar TDateTime-cellvärden så att Excel visar samma kalenderdatum
Iterate / IterateCount / IterateDelta Styr iterativ beräkning av cirkulära referenser. IterateCount begränsas till 1..32767 och är default 100. IterateDelta accepterar icke-negativa ändliga värden och är default 0,001. Icke-default-gränser består även när Iterate för tillfället är False
CalcMode / RefMode / CalcId Styr arbetsbokens beräkningsläge, formelreferensstil och beräkningsmotorns identitet. CalcMode accepterar auto, manual eller autoNoTable. RefMode accepterar A1 eller R1C1 med skiftlägesokänslig inmatning och kanonisk utmatning Modern riktfel-utdata använder ett emitterat CalcId på minst 191029 så att Excel tolkar cachade moderna fel, med bevarande av högre begärda värden och utan att egenskapen i minnet ändras
FullCalcOnLoad / ForceFullCalc / CalcCompleted / CalcOnSave / FullPrecision Styr full omberäkning, slutförd cachad beräkning, omberäkning före sparande och precisionspolicy. Vart och ett av de icke-default värdena emitserar och round-trip:ar sitt motsvarande <calcPr>-attribut
ConcurrentCalc / ConcurrentManualCount Styr samtidig arbetsboksberäkning och den manuella hinten för antal worker. ConcurrentManualCount begränsas till noll eller mer
SourceFormat Rapporterar paketfamiljen som senaste lyckade Open- eller OpenODS-anrop läste in, och returnerar xlsxOpenXMLWorkbook för OOXML-arbetsböcker och mallar, inklusive XLTX och XLTM, xlsxOpenDocumentSpreadsheet för ODS samt xlsxExcelBinaryWorkbook för den stödda XLSB-delmängden med värden och stilar
En nyskapad arbetsbok rapporterar xlsxOpenXMLWorkbook tills en fil öppnats, och egenskapen väljer inte utdataformat
IndexedColor[Index] ARGB-värde för angiven OOXML-palettplats för indexerad färg (0..63). Läsning returnerar användarens överskrivning om satt, annars OOXML-default (XlsxDefaultIndexedPalette). Skrivning överskriver plats N; SaveAs emitserar därefter ett fullständigt <indexedColors>-block med alla 64 platser
ResolveIndexedColor Klassificerar publika färgindex, BIFF-icv-värden eller OOXML-indexerade färger och löser ett normaliserat ARGB-värde när arbetsbokspaletten eller en explicit systemfärg-callback levererar ett
NearestIndexedColor Returnerar närmaste fysiska palettpost via den gemensamma cachade OKLab-matcharen utan att ändra paletten eller arbetsbokstillståndet
ScanIndexedColorUsage Returnerar ett deterministiskt inventarium med 56 platser: palettfärger, definitions- och referensräknare, konsumenttyper och bevarandelås, utan att materialisera celler eller ändra arbetsbokstillståndet
BuildBiffPalettePlan Returnerar en mutationsfri BIFF-palettplan med 56 platser: låsta platser, aggregerade true-color-mål, deterministiska mappningar, källidentitet och viktad OKLab-felstatistik
ApplyBiffPalettePlan Validerar källidentitet, platsmetadata, lås och ogenomskinliga mål innan alla ändrade palettposter appliceras atomärt och den cachade matcharen byggs om en gång
HasCustomIndexedColor / CustomIndexedColorCount / ResetIndexedColors HasCustomIndexedColor(N) returnerar True när plats N uttryckligen överskrivits. CustomIndexedColorCount returnerar antalet överskrivna platser (0 = inget <colors>-block emitseras av SaveAs). ResetIndexedColors kastar alla överskrivningar och återställer defaultpaletten
ExternalLinks Samling av externa arbetsboksreferenser. Varje TXLSXExternalLink-post håller en Target-URL och en SheetNames-lista. SaveAs emitserar blocket <externalReferences> i xl/workbook.xml och motsvarande delar under xl/externalLinks/. Open round-trip:ar Target och SheetNames; cachade cellvärden inuti <sheetDataSet> bevaras inte
CreateWorkspaceWorkbook Returnerar den återkallbara IXLSWorkspaceWorkbook-adaptern för denna arbetsbok. Adaptern bevarar arbetsbokens källidentitet och generation och kopplar ner sig innan arbetsboksmodellen förstörs
ExternalWorkspace Trådsäker, sökvägsbevarande registertjänst som används vid live-utvärdering av externa formler. Exakta identiteter och alias föredras, tvetydig basename-uppslagning avvisas, och identitetsnormalisering gör inga implicita fil- eller nätverksåtkomster. Se Live workbook workspace
RegisterExternalWorkbook / UnregisterExternalWorkbook Kompatibilitetsfasad över ExternalWorkspace. Registrering mappar ett entydigt angivet namn till arbetsbokens lagrade relationsmål, håller sökvägar och filändelser åtskilda och avvisar kollisioner. Avregistrering tar bort den begärda registreringen; förstörs målet återkallas adaptern på ett säkert sätt

Exempel

Writing and re-opening a workbook:
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;
    

Se även