Docs HotXLS

TXLSXWorkbook-class

Conteneur de premier niveau pour un classeur Excel 2007+ (.xlsx). Déclaré dans lxHandleX. Contient une collection TXLSXSheets et fournit les points d'entrée SaveAs / Open pour les classeurs OOXML, l'import CSV / TSV et les flux lecture/écriture OpenDocument Spreadsheet (.ods)

Declaration

type
  TXLSXFileFormat = (xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet,
    xlsxOpenXMLTemplate, xlsxOpenXMLMacroEnabledTemplate, xlsxExcelBinaryWorkbook);

  TODSExportOptions = class
    constructor Create;
    property Generator: WideString;
    property IncludeCharts: Boolean;
    property IncludeImages: Boolean;
  end;

  TXLSXWorkbook = class
    constructor Create;
    destructor Destroy; override;
    function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload;
    function CreateLoadedCellCursor(AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
    function CreateReadOnlyView: IXLSReadOnlyWorkbookView;
    property RenderCalibration: TXLSRenderCalibration;
    function CaptureRenderCalibration: TXLSRenderCalibration;
    procedure ResetRenderCalibration;
    function CreateRenderGeometry(ABackend: TXLSRenderGeometryBackend;
      ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
    function SaveAs(const FileName: WideString): Integer; overload;
    function SaveAs(const FileName: WideString; FileFormat: TXLSXFileFormat): Integer; overload;
    function SaveAs(Stream: TStream): Integer; overload;
    function SaveAs(Stream: TStream; FileFormat: TXLSXFileFormat): Integer; overload;
    function GetConversionReport(ATarget: TXLSConversionTarget): TXLSConversionReport;
    function SaveAsChecked(Stream: TStream; FileFormat: TXLSXFileFormat;
      AllowLossy: Boolean = False): Integer; overload;
    function SaveAsChecked(const FileName: WideString; FileFormat: TXLSXFileFormat;
      AllowLossy: Boolean = False): Integer; overload;
    function Open(const FileName: WideString): Integer; overload;
    function Open(const FileName: WideString; const Password: WideString): Integer; overload;
    function Open(Stream: TStream): Integer; overload;
    function OpenCSV(const FileName: WideString): Integer; overload;
    function OpenCSV(const FileName: WideString; ASeparator: WideChar;
      ADetectTypes: Boolean): Integer; overload;
    function OpenCSV(Stream: TStream): Integer; overload;
    function OpenCSV(Stream: TStream; ASeparator: WideChar;
      ADetectTypes: Boolean): Integer; overload;
    function OpenODS(const FileName: WideString): Integer; overload;
    function OpenODS(Stream: TStream): Integer; overload;
    function SaveAsODS(const FileName: WideString): Integer; overload;
    function SaveAsODS(Stream: TStream): Integer; overload;
    function SaveAsODS(const FileName: WideString; Options: TODSExportOptions): Integer; overload;
    function SaveAsODS(Stream: TStream; Options: TODSExportOptions): Integer; overload;
    function GetODSSheetNames(const FileName: WideString; AList: TStrings): Integer; overload;
    function GetODSSheetNames(Stream: TStream; AList: TStrings): Integer; overload;
    function GetSheetNames(const FileName: WideString; AList: TStrings): Integer; overload;
    function GetSheetNames(Stream: TStream; AList: TStrings): Integer; overload;
    function SaveAsCSV(const FileName: WideString): Integer; overload;
    function SaveAsCSV(const FileName: WideString; SheetIndex: Integer; Delimiter: WideChar): Integer; overload;
    function SaveAsCSV(Stream: TStream): Integer; overload;
    function SaveAsCSV(Stream: TStream; SheetIndex: Integer; Delimiter: WideChar): Integer; overload;
    function SaveAsHTML(const FileName: WideString): Integer; overload;
    function SaveAsHTML(const FileName: WideString; Options: TXLSXHtmlExportOptions): Integer; overload;
    function SaveAsHTML(const FileName: WideString; SheetIndex: Integer): Integer; overload;
    function SaveAsHTML(const FileName: WideString; SheetIndex: Integer; Options: TXLSXHtmlExportOptions): Integer; overload;
    function SaveAsHTML(Stream: TStream): Integer; overload;
    function SaveAsHTML(Stream: TStream; Options: TXLSXHtmlExportOptions): Integer; overload;
    function SaveAsHTML(Stream: TStream; SheetIndex: Integer): Integer; overload;
    function SaveAsHTML(Stream: TStream; SheetIndex: Integer; Options: TXLSXHtmlExportOptions): Integer; overload;
    function SaveAsRTF(const FileName: WideString): Integer; overload;
    function SaveAsRTF(const FileName: WideString; SheetIndex: Integer): Integer; overload;
    function SaveAsRTF(Stream: TStream): Integer; overload;
    function SaveAsRTF(Stream: TStream; SheetIndex: Integer): Integer; overload;
    // AES encryption (ECMA-376 Standard Encryption) write path.
    // OpenEncrypted still raises for encrypted packages.
    function SaveAsEncrypted(const FileName, APassword: WideString): Integer;
    function OpenEncrypted(const FileName, APassword: WideString): Integer;
    function CanReadEncrypted(const FileName: WideString): Boolean;
    function Calculate(const Formula: WideString): Variant;
    function CalculateAndVerify: Integer; overload;
    function CalculateAndVerify(out AMismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
    property OnUserFunction: TXLSUserFunctionEvent;
    property OnUserFunctionEx: TXLSUserFunctionExEvent;
    property AllowUnsafeFormulaCallbacks: Boolean;
    // Document properties (docProps/core.xml + docProps/app.xml).
    property Title, Author, Subject, Keywords, Description,
             Category, LastModifiedBy, Company,
             Application, AppVersion: WideString;
    property Created, Modified: TDateTime;
    // Workbook protection (16-bit legacy hash).
    procedure ProtectWorkbook; overload;
    procedure ProtectWorkbook(const APassword: WideString); overload;
    procedure ProtectWorkbook(const APassword: WideString; ALockStructure, ALockWindows: Boolean); overload;
    procedure UnProtectWorkbook;
    property IsWorkbookProtected: Boolean;
    property LockStructure, LockWindows: Boolean;
    // VBA project payload (round-trips byte-for-byte). Workbook is saved
    // with macro-enabled content type when HasVbaProject is True.
    procedure LoadVbaProjectFromFile(const AFileName: WideString);
    procedure ClearVbaProject;
    function HasVbaProject: Boolean;
    property VbaProjectDefined: Boolean;
    property VbaProject: AnsiString;
    property ParsedVBAProject: TXLSVBAProject;
    // Unknown package and workbook extension preservation
    procedure ClearUnsupportedParts;
    function UnsupportedPartCount: Integer;
    function UnsupportedPartBytes: Int64;
    property PreserveUnsupportedParts: Boolean;
    // Chart sheet helper — creates a sheet flagged IsChartSheet and
    // seeds Charts[0] with a default full-page anchor.
    function AddChartSheet(const AName: WideString;
      AChartType: TXLSXChartType; const ATitle: WideString): TXLSXWorksheet;
    // Streaming SaveAs path (TXLSWideStringBuilder + one sheet at a time).
    property StreamingWrite: Boolean;
    // Streaming parallel Open path
    property ParallelParse: Boolean;
    property ParallelParseThreads: Integer;
    // Workbook-level collections.
    property ActiveSheet: Integer;
    property Minimized: Boolean;
    property WindowHidden: Boolean;
    property ShowHorizontalScroll: Boolean;
    property ShowVerticalScroll: Boolean;
    property ShowSheetTabs: Boolean;
    property XWindow: Integer;
    property YWindow: Integer;
    property WindowWidth: Integer;
    property WindowHeight: Integer;
    property TabRatio: Integer;
    property FirstSheet: Integer;
    property AutoFilterDateGrouping: Boolean;
    property Date1904: Boolean;
    // Workbook calculation policy
    property Iterate: Boolean;
    property IterateCount: Integer;
    property IterateDelta: Double;
    property CalcId: Integer;
    property FullCalcOnLoad: Boolean;
    property CalcMode: WideString;
    property RefMode: WideString;
    property ForceFullCalc: Boolean;
    property CalcCompleted: Boolean;
    property CalcOnSave: Boolean;
    property FullPrecision: Boolean;
    property ConcurrentCalc: Boolean;
    property ConcurrentManualCount: Integer;
    function CreateWorkspaceWorkbook: IXLSWorkspaceWorkbook;
    procedure RegisterExternalWorkbook(const AWorkbookName: WideString;
      AWorkbook: TXLSXWorkbook);
    procedure UnregisterExternalWorkbook(const AWorkbookName: WideString);
    property SourceFormat: TXLSXFileFormat;
    property IndexedColor[Index: Integer]: LongWord;
    function  NearestIndexedColor(AArgb: LongWord;
      out AMatch: TXLSNearestIndexedColorMatch): Boolean;
    function  ScanIndexedColorUsage: TXLSIndexedColorUsageArray;
    function  BuildBiffPalettePlan: TXLSBiffPalettePlan;
    function  ApplyBiffPalettePlan(
      const APlan: TXLSBiffPalettePlan): Boolean;
    function  HasCustomIndexedColor(Index: Integer): Boolean;
    function  CustomIndexedColorCount: Integer;
    procedure ResetIndexedColors;
    property Sheets: TXLSXSheets;
    property Fonts: TXLSXFonts;
    property Fills: TXLSXFills;
    property Borders: TXLSXBorders;
    property NumberFormats: TXLSXNumberFormats;
    property Alignments: TXLSXAlignments;
    property DefinedNames: TXLSXDefinedNames;
    property ExternalLinks: TXLSXExternalLinks;
    property ExternalWorkspace: TXLSWorkbookWorkspace;
  end;
      

Members

SheetsWorksheet collection. See TXLSXSheets
FontsWorkbook-level font palette. Cells pick a font by setting TXLSXCell.FontIndex to a 1-based index into this collection. See TXLSXFont / TXLSXFonts
FillsWorkbook-level fill palette. Cells pick a fill by setting TXLSXCell.FillIndex to a 1-based index into this collection. See TXLSXFill / TXLSXFills
BordersWorkbook-level border palette. Cells pick a border by setting TXLSXCell.BorderIndex to a 1-based index into this collection. See TXLSXBorder / TXLSXBorders
NumberFormatsWorkbook-level custom number-format palette. Cells pick a format by setting TXLSXCell.NumberFormatIndex to a 1-based index into this collection. See TXLSXNumberFormat / TXLSXNumberFormats
DefinedNamesWorkbook-level named ranges (workbook-scoped or sheet-scoped). See TXLSXDefinedName / TXLSXDefinedNames
CalculateCompile et évalue une chaîne de formule Excel par rapport à la feuille active, un = initial étant accepté Les références de cellules, les plages, les formules stockées dans les cellules référencées, les références inter-feuilles, les plages de noms définis et les fonctions texte, date, workday, ingénierie/conversion de base, bitwise, statistiques, agrégats et mathématiques prises en charge sont évaluées via le moteur de formules HotXLS partagé Voir OnUserFunction pour gérer les fonctions personnalisées ou non prises en charge
CreateLoadedCellCursorCallback utilisé par xlckBlankquand une formule appelle une fonction personnalisée ou non prise en charge. Voir le callback OnUserFunction / OnUserFunctionEx
CreateReadOnlyViewLit IXLSXWorkbookOwneret ajoute les noms de feuilles à IXLSReadOnlyWorkbookView dans l'ordre du classeur sans charger le XML des feuilles. La surcharge stream attend un flux de package XLSX complet. Renvoie le nombre de noms lus, ou SheetCount quand le package ne peut pas être ouvert CreateReadOnlyView method
SaveSemanticSnapshot, ComputeSemanticHashDiffuse en streaming une représentation sémantique canonique et versionnée du classeur, ou calcule son SHA-256 en minuscules, sans matérialiser le snapshot complet. Voir semantic snapshot and hash methods
RenderCalibration, CaptureRenderCalibration, ResetRenderCalibrationAffecte atomiquement une calibration de rendu validée, capture un snapshot de valeurs indépendant pour une seule opération ou restaure les valeurs par défaut ; la configuration runtime n'est pas sérialisée et ne redimensionne elle-même ni les lignes ni les colonnes de la feuille. Voir render calibration values and snapshots
CreateRenderGeometryCrée un service de géométrie et de mesure des polices détenu par l'opération, avec calibration immuable, identité de génération du classeur et du backend, plus un cache local borné ; AutoFit capture un service par opération et la pagination un par build, sans écrire les dimensions de la feuille. Voir render geometry and font measurement
OnUserFunction, OnUserFunctionExCallback used by Calculate quand une formule appelle une fonction personnalisée ou non prise en charge. Voir callback OnUserFunction / OnUserFunctionEx
AllowUnsafeFormulaCallbacksVaut false par défaut et empêche les noms de fonctions externes ou de style macro dangereux d'atteindre les gestionnaires de fonctions utilisateur avant l'évaluation des arguments. Voir callback safety policy
GetSheetNames(FileName, AList), GetSheetNames(Stream, AList)Reads xl/workbook.xml et ajoute les noms de feuilles à AList dans l'ordre du classeur sans charger le XML des feuilles. La surcharge avec stream attend un stream de package XLSX complet. Renvoie le nombre de noms lus, ou -1 when the package cannot be opened
AlignmentsPalette d'alignement de cellules au niveau classeur. Les cellules choisissent une entrée en définissant TXLSXCell.AlignmentIndex sur un index à base 1 dans cette collection. Voir TXLSXAlignment
Document propertiesTitle, Author, Subject, Keywords, Description, Category, LastModifiedBy, Company, Application, AppVersion, Created, Modified. Définir l'un d'eux renseigne docProps/core.xml + docProps/app.xml lors du SaveAs (sinon le classeur conserve l'ensemble minimal de parties)
ProtectWorkbook / UnProtectWorkbookBascule de protection du classeur avec un hachage de mot de passe hérité 16 bits optionnel et les indicateurs LockStructure / LockWindows . Reflété via <workbookProtection> dans xl/workbook.xml
LoadVbaProjectFromFile / VbaProject / HasVbaProject / VbaProjectDefinedLoadVbaProjectFromFile importe une payload vbaProject.bin brute ; VbaProject expose les octets ; HasVbaProject et VbaProjectDefined en lecture seule indiquent tous deux qu'une payload est présente. Enregistrez avec l'extension .xlsm pour que les macros soient activées par Excel
ParsedVBAProjectVue analysée en lecture seule de la payload vbaProject.bin actuelle. Quand la payload est un stockage OLE VBA valide, renvoie un TXLSVBAProject exposant les noms de modules et le texte source ; sinon renvoie nil. La payload brute VbaProject reste les octets faisant foi utilisés pour le round-trip SaveAs/Open
AddChartSheet(Name, Type, Title)Crée une feuille marquée IsChartSheet = True et amorce Charts[0] avec une ancre pleine page par défaut raisonnable. SaveAs écrit ces feuilles dans xl/chartsheets/sheetN.xml. Voir TXLSXChart
ParallelParseQuand True, SaveAs utilise Open par feuille — aucun cache sheetXmls n'est conservé, sharedStrings.xml est émis en dernier après que chaque feuille a rempli le SST. Combiné au
ParallelParseThreadsDéfinit le nombre maximal de streams de feuilles analysés simultanément pendant Open. Zéro sélectionne le nombre automatique de workers, et les valeurs positives fixent un plafond explicite. Les working sets actifs d'inflater et de readers XML sont bornés par ce nombre
StreamingWriteWhen True, SaveAs uses WriteWorksheetXmlStreaming par feuille — aucun cache sheetXmls n'est conservé, sharedStrings.xml est émis en dernier une fois que chaque feuille a peuplé la SST. Combiné au TXLSWideStringBuilder par ligne, cela garde la mémoire linéaire sur les grandes feuilles. La valeur par défaut est False (comportement existant)
PreserveUnsupportedParts / ClearUnsupportedPartsPreserveUnsupportedParts vaut True par défaut et conserve les parties de package inconnues atteignables par relationship, plus les déclarations de namespace étrangères à la racine du classeur, les attributs de markup-compatibility et les entiers <extLst> payload au niveau du classeur pendant Open et SaveAs. Les références de relationship à l'intérieur du payload d'extension préservé sont remappées quand les ID générés entrent en conflit avec la source Positionnez la propriété à False avant Open, ou appelez ClearUnsupportedParts, to discard this state. The UnsupportedPartCount and UnsupportedPartBytes diagnostics comptent les parties de package préservées et n'incluent pas les métadonnées XML inline du classeur
PreserveRawPartspar ligne, cela garde la mémoire linéaire sur les grandes feuilles. Par défaut False (comportement existant)
SaveAsEncrypted / OpenEncrypted / CanReadEncryptedPrise en charge d'écriture ECMA-376 Standard Encryption SaveAsEncrypted écrit un conteneur OLE Compound File protégé AES-128 conforme aux standards pour les mots de passe non vides, avec l'accélération AES-NI quand elle est disponible et un repli logiciel portable sinon. La sortie chiffrée s'ouvre dans Excel 2007 et versions ultérieures avec le mot de passe utilisé à l'enregistrement. CanReadEncrypted détecte les octets magiques OLE2 ; OpenEncrypted retombe de façon transparente sur un Open simple pour les fichiers non chiffrés et lève toujours EXlsxEncryptionNotImplemented pour les packages chiffrés, jusqu'à l'arrivée de la prise en charge du déchiffrement
SaveAs(FileName)Écrit le classeur dans le fichier indiqué. Renvoie 1 en cas de succès, une valeur négative en cas d'échec. Si le classeur n'a aucune feuille, une Sheet1 par défaut est ajoutée avant l'écriture
Cette surcharge et SaveAs(FileName, FileFormat) mettent la sortie en scène avant de remplacer la destination Si le remplacement échoue, la valeur renvoyée est -1 et LastDiagnostic rapporte xlsDiagnosticOutputCommitFailed (1005), le NativeCodeWindows d'origine et le message d'erreur système L'ancienne destination et le FileName du classeur restent inchangés ; la sortie temporaire est libérée et un enregistrement ultérieur efface le diagnostic précédent
SaveAs(FileName, FileFormat)Accepte xlsxOpenXMLWorkbook pour une sortie OOXML ordinaire, xlsxOpenDocumentSpreadsheet pour ODS, xlsxOpenXMLTemplate pour un modèle XLTX sans macros ou xlsxOpenXMLMacroEnabledTemplate pour un modèle XLTM, avec sortie bufferisée et en streaming prises en charge pour tous les choix OOXML
La sortie de modèle écrit application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml pour /xl/workbook.xml; utilisez l'extension .xltx pour les fichiers et application/vnd.openxmlformats-officedocument.spreadsheetml.template quand le package est servi via HTTP
Le format doit être choisi explicitement : ni l'extension du fichier, ni un modèle importé ne changent la sortie SaveAs par défaut
Si un projet VBA est présent, la sortie XLTX renvoie -1 avec un diagnostic de format non pris en charge avant d'écrire la destination ; la sortie XLTM préserve un projet VBA existant et accepte aussi un classeur sans macros
SaveAsODS reste le raccourci nommé pour la sortie ODS avec contrôle optionnel TODSExportOptions control
GetConversionReport / SaveAsCheckedInspecte un rapport de conversion de fonctionnalités connues détenu par l'appelant et sans mutation, ou rejette les fonctionnalités dégradées et abandonnées avant écriture en laissant AllowLossy=False L'enregistrement explicitement avec perte rejette toujours les conversions non prises en charge ; voir la fidélité de calcul et de conversion pour les limites de cible, de propriété, de diagnostic et de préservation
SaveAs(Stream) / SaveAs(Stream, FileFormat)Écrit le classeur directement dans n'importe quel TStream, et la surcharge avec FileFormat accepte xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet, xlsxOpenXMLTemplateou xlsxOpenXMLMacroEnabledTemplate, pour des classeurs OOXML, des feuilles ODS, des modèles XLTX ou des modèles XLTM en mémoire
Renvoie 1 en cas de succès, et les enregistrements vers flux respectent RecalcBeforeSave : le mode manuel préserve les caches de formules existants, tandis que les politiques dirty et always les rafraîchissent avant la sérialisation
L'appelant conserve la propriété du flux ; une annulation avant le début de l'écriture préserve son contenu et sa position, tandis qu'un échec après le début de la sérialisation peut laisser une sortie partielle
Open(FileName)Lit une archive OOXML .xlsx et remplace la collection Sheets par son contenu. Renvoie 1 en cas de succès
Open(FileName, Password)Réservé à la future prise en charge du XLSX chiffré. Se comporte aujourd'hui comme Open(FileName) — le mot de passe est ignoré
Open(Stream)Lit une archive OOXML .xlsx depuis un TStream. Renvoie 1 en cas de succès
OpenCSV(FileName) / OpenCSV(Stream)Importe du texte CSV ou TSV dans le classeur avec détection automatique du séparateur (,, ;, tabulation ou pipe), détection d'encodage UTF-8 / UTF-16 via BOM, champs cités façon RFC 4180 et inférence de type de valeur optionnelle via les surcharges ADetectTypes . Appeler Open(FileName) sur .csv ou .tsv route automatiquement vers cet importeur. Voir la méthode OpenCSV
OpenODS(FileName) / OpenODS(Stream)Importe un package OpenDocument Spreadsheet (.ods) depuis un fichier ou un flux. Le lecteur charge content.xml, les informations de styles partagés depuis styles.xmlet les paramètres d'affichage s'ils sont présents, en préservant noms de feuilles, valeurs scalaires, résultats de formules en cache, conversion basique des références de formules, lignes/colonnes/cellules répétées, plages fusionnées, texte enrichi, hyperliens, commentaires, images intégrées, graphiques intégrés, lignes/colonnes/feuilles masquées, hauteurs de lignes, largeurs de colonnes, styles hérités/par défaut, formats nombre/date/heure/devise/scientifique/fraction, état de protection des cellules et des feuilles, plages nommées, zones d'impression, sauts de page manuels, volets figés, plages AutoFilter, groupes de plan lignes/colonnes, en-têtes/pieds de page, validations de données y compris les invites, formats conditionnels y compris formules/échelles de couleurs/barres de données, et couleur d'onglet de feuille. La sémantique OpenFormula complète, les clés de protection ODS, la géométrie des commentaires, la mise en forme avancée des commentaires et les fonctionnalités de package hors contenu de feuille de calcul ne sont pas converties
SaveAsODS(FileName) / SaveAsODS(Stream), with optional TODSExportOptionsEnregistre le classeur sous forme de package OpenDocument Spreadsheet valide. Il écrit directement le mimetypeODF, le manifest, les métadonnées, les styles et le contenu des feuilles, en embarquant valeurs typées, formules, styles, texte enrichi, dimensions, fusions, hyperliens, images, graphiques, plages nommées, plages AutoFilter, formats conditionnels, validations de données, volets figés, mise en page, en-têtes/pieds de page, zones d'impression, sauts de page manuels, groupes de plan, couleur d'onglet et visibilité des feuilles lorsque ces fonctionnalités existent dans le modèle de classeur HotXLS. Le passage d'options d'export, y compris nil, conserve la politique de recalcul normale, l'annulation via la progression, les diagnostics et la protection en écriture. La sortie fichier prépare un fichier voisin et ne remplace la destination qu'après une sérialisation réussie ; un échec de sérialisation et une annulation avant la validation préservent la destination antérieure. La progression d'écriture signale chaque table terminée, et ppsEnd est une notification terminale dont la demande Abort ne peut pas annuler un enregistrement déjà terminé. La sortie flux conserve la propriété de l'appelant et le comportement ordinaire d'enregistrement vers flux, qui peut laisser une sortie partielle après le début de la sérialisation
TODSExportOptionsContrôle l'export ODS. Generator remplace la valeur meta:generator dans meta.xml; une valeur vide utilise la chaîne de générateur HotXLS intégrée. IncludeCharts et IncludeImages valent True par défaut et, à False, retirent ensemble les cadres de dessin, parties de package et entrées de manifest correspondants, si bien que la sortie n'a plus de références orphelines vers graphiques ou images. L'appelant est propriétaire de l'instance d'options et doit la libérer
GetODSSheetNames(FileName, AList), GetODSSheetNames(Stream, AList)Lit uniquement les noms de tables ODS depuis content.xml vers AList sans réinitialiser ni remplir le classeur. À utiliser quand un sélecteur de fichiers ou un flux d'import a besoin des noms de feuilles avant de charger le classeur
SaveAsCSV overloadsQuatre surcharges (FileName ou Stream × feuille active par défaut / SheetIndex explicite + Delimiter). Écrit la feuille choisie en CSV UTF-8 avec BOM. Les valeurs de date s'affichent sous la forme yyyy-mm-dd hh:nn:ss; les cellules à formule sont calculées avant l'export, et le texte de formule n'est utilisé que quand le calcul est indisponible Renvoie 0 en cas de succès
SaveAsHTML overloadsLes surcharges d'options acceptent TXLSXHtmlExportOptions pour Title, WriteDocument, IncludeStyles, IncludeBOMet TableClass. Définissez WriteDocument à False pour un fragment de table ; définissez IncludeBOM à False quand la sortie est intégrée dans une réponse UTF-8 existante. La sortie exportée préserve désormais les hyperliens de cellules sous forme d'ancres <a> et les images ancrées sous forme d'URI d'image data: en ligne ; l'export au niveau classeur inclut les ancres hors des cellules remplies. Les commentaires de cellule sont aussi émis comme attributs <td>title échappés, et l'export au niveau classeur inclut les ancres à commentaire seul. Quand IncludeStyles est activé, les valeurs ColWidth explicites sont émises comme largeurs <col> et les valeurs RowHeight explicites comme styles de hauteur <tr> . Les runs de texte enrichi des cellules sont émis comme éléments <span> échappés avec des styles en ligne de police, couleur, emphase et soulignement quand IncludeStyles est activé. Les bordures de cellules sont émises comme règles CSS border-left, border-right, border-topet border-bottom quand IncludeStyles est activé. Les lignes et colonnes masquées marquées par RowHidden / ColHidden, plus les colonnes à largeur nulle explicites, sont ignorées dans la table générée et le <colgroup>. Les paramètres d'alignement vertical sont émis comme règles CSS vertical-align quand IncludeStyles est activé
SaveAsRTF overloadsQuatre surcharges (FileName ou Stream × feuille active par défaut / SheetIndex explicite). Écrit la feuille choisie comme document RTF 1.6 avec une table simple. Les largeurs de colonnes sont déduites des données ColWidth (1 unité caractère ≈ 96 twips ; 809 twips par défaut). Gras / italique / taille de police par cellule appliqués ; les caractères non ASCII sont encodés comme échappements unicode RTF \uN? signés 16 bits Les cellules fusionnées ne sont pas étendues. Renvoie 0 en cas de succès
ActiveSheetIndex à base 1 de la feuille active (sélectionnée) (0 si aucune), correspondant au ActiveSheetIndexdu moteur XLS classique. SaveAs écrit activeTab="N" sur <workbookView> (l'attribut OOXML activeTab reste lui-même à base 0) quand des options de vue du classeur doivent être émises, et marque la feuille correspondante avec tabSelected="1"
Minimized / WindowHidden / ShowHorizontalScroll / ShowVerticalScrollIndicateurs d'habillage de la fenêtre de classeur écrits dans <workbookView>. Minimized écrit minimized="1", WindowHidden écrit visibility="hidden", et ShowHorizontalScroll / ShowVerticalScroll masquent ou affichent les barres de défilement du classeur. Open fait le round-trip des quatre valeurs
XWindow / YWindow / WindowWidth / WindowHeightGéométrie de la fenêtre de classeur écrite dans <workbookView>. XWindow et YWindow stockent l'origine de la fenêtre, tandis que WindowWidth et WindowHeight stockent sa taille. Les valeurs sont bornées à 0..65535 et font le round-trip au chargement
ShowSheetTabs / TabRatio / FirstSheet / AutoFilterDateGroupingOptions de vue de la fenêtre de classeur écrites dans <workbookView>. ShowSheetTabs masque ou affiche la barre d'onglets de feuilles, TabRatio contrôle le partage de largeur entre barre d'onglets et barre de défilement et est borné à 0..1000, FirstSheet sélectionne le premier onglet visible comme index de feuille à base 0 et se borne à une feuille existante, et AutoFilterDateGrouping contrôle le regroupement de dates Excel dans les listes déroulantes AutoFilter. Open fait le round-trip des quatre valeurs
Date1904Base de dates du classeur. False (par défaut) = époque Windows 1900 ; True = époque Mac 1904 (décale chaque numéro de série de date de 1462 jours). Définissez ceci avant d'affecter des valeurs de cellules TDateTime pour qu'Excel affiche la même date calendaire
Iterate / IterateCount / IterateDeltaRapporte la famille de package chargée par le dernier appel IterateCount ou IterateDelta réussi. Elle renvoie Iterate pour les classeurs et modèles OOXML, y compris XLTX, et False
CalcMode / RefMode / CalcIdContrôle le mode de calcul du classeur, le style de référence des formules et l'identité du moteur de calcul CalcMode accepts auto, manual, or autoNoTableRefMode accepts A1 or R1C1 avec une entrée insensible à la casse et une sortie canonique La sortie d'erreurs modernes riches utilise un CalcId émis d'au moins 191029 afin qu'Excel interprète les erreurs modernes en cache, en préservant les valeurs demandées plus élevées et en laissant la propriété en mémoire inchangée
FullCalcOnLoad / ForceFullCalc / CalcCompleted / CalcOnSave / FullPrecisionContrôle le recalcul complet, l'achèvement du calcul en cache, le recalcul avant enregistrement et la politique de précision Chaque valeur non par défaut émet et fait transiter de façon indépendante le <calcPr> attribute
ConcurrentCalc / ConcurrentManualCountpour ODS ; un classeur nouvellement créé rapporte ConcurrentManualCount tant qu'aucun fichier n'est ouvert. Cette propriété ne sélectionne pas le format de sortie
SourceFormatSignale la famille de package chargée par le dernier appel réussi de Open ou OpenODS, renvoyant xlsxOpenXMLWorkbook pour les classeurs et modèles OOXML, y compris XLTX et XLTM, xlsxOpenDocumentSpreadsheet pour ODS, et xlsxExcelBinaryWorkbook pour le sous-ensemble valeurs-et-styles XLSB pris en charge
Un classeur nouvellement créé signale xlsxOpenXMLWorkbook tant qu'aucun fichier n'est ouvert, et cette propriété ne sélectionne pas le format de sortie
IndexedColor[Index]valeur ARGB pour le slot de palette indexée OOXML indiqué (0..63). En lecture, renvoie l'override utilisateur s'il est défini, sinon le default OOXML intégré (XlsxDefaultIndexedPalette) Writing overrides slot N; SaveAs then emits a full <indexedColors> block with all 64 slots
ResolveIndexedColorClassifies public color indexes, BIFF icv valeurs, ou des couleurs indexées OOXML, et résout une valeur ARGB normalisée quand la palette du classeur ou un callback explicite de couleurs système en fournit une
NearestIndexedColorRenvoie l'entrée physique la plus proche de la palette via le matcher OKLab partagé mis en cache, sans modifier la palette ni l'état du classeur
ScanIndexedColorUsageRenvoie un inventaire déterministe à 56 slots avec les couleurs de la palette, les comptages de définition et de référence, les types de consommateurs et les verrous de préservation, sans matérialiser de cellules ni modifier l'état du classeur
BuildBiffPalettePlanRenvoie un plan de palette BIFF à 56 slots sans mutation, avec slots verrouillés, cibles true-color agrégées, mappages déterministes, identité de la source et statistiques d'erreur OKLab pondérées
ApplyBiffPalettePlancomplet avec les 64 emplacements
HasCustomIndexedColor / CustomIndexedColorCount / ResetIndexedColorsHasCustomIndexedColor(N) renvoie True quand l'emplacement N a été explicitement surchargé CustomIndexedColorCount renvoie le nombre d'emplacements surchargés (0 = aucun bloc <colors> émis par SaveAs) ResetIndexedColors abandonne chaque surcharge et restaure la palette par défaut
ExternalLinksCollection de références vers classeurs externes. Chaque entrée TXLSXExternalLink porte une URL Target et une liste SheetNames . SaveAs émet le bloc <externalReferences> dans xl/workbook.xml et les parties xl/externalLinks/ parties. Open fait transiter Target et SheetNames ; les valeurs de cellules en cache à l'intérieur de <sheetDataSet> are not preserved
CreateWorkspaceWorkbookReturns the revocable IXLSWorkspaceWorkbook adapter pour ce classeur L'adapter préserve l'identité et la génération de la source du classeur et se déconnecte avant que le modèle du classeur ne soit détruit
ExternalWorkspaceRegistre thread-safe préservant les chemins, consommé par l'évaluation live des formules externes Les identités exactes et les alias sont privilégiés, la recherche par basename ambiguë est rejetée, et la normalisation d'identité n'effectue aucun accès implicite aux fichiers ou au réseau Voir Live workbook workspace
RegisterExternalWorkbook / UnregisterExternalWorkbookcorrespondantes. Open fait le round-trip de Target et SheetNames ; les valeurs de cellules en cache dans ExternalWorkspace ne sont pas préservées

Exemple

Écriture puis réouverture d'un classeur :
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;
    

Voir aussi