Bibliothèque Excel pour RAD Studio

Lisez, écrivez, mettez en forme et exportez des classeurs Excel sans automatisation Office

HotXLS est une bibliothèque Object Pascal native pour les applications Delphi et C++Builder. Elle traite directement les workflows XLS classiques comme la façade XLSX actuelle, avec API de classeur, édition de feuilles de calcul, mise en forme riche, assistants d'export, démos et documentation hors ligne dans le package

Instantané du classeur XLS + XLSX
Valeurs
Styles
Export
Nombres
Bordures
CSV
Dates
Couleurs du thème
HTML
Formules
Validation
RTF

Instantané actuel des capacités

La gamme HotXLS actuelle combine la façade XLS d'origine avec un moteur XLSX dédié, si bien que le code existant peut continuer à utiliser l'API classique pendant que les nouveaux projets ciblent directement les fonctionnalités OOXML

E/S de classeur natives

Créez, ouvrez, modifiez et enregistrez des classeurs Excel directement depuis du code Delphi ou C++Builder. Aucune installation de Microsoft Excel, aucune automatisation COM, aucun processus tableur externe requis

Enregistrez des modèles XLTX sans macros avec SaveAs(FileName, xlsxOpenXMLTemplate) ou la surcharge stream équivalente, sortie en streaming comprise ; le format d'enregistrement par défaut reste inchangé

Façade XLS classique

Une API mature pour les classeurs Excel 97-2003 (.xls), couvrant l'intégralité du modèle objet classique avec un aller-retour BIFF8 haute fidélité, et lisant les fichiers hérités Excel 2.0/3.0/4.0 (BIFF2-4) pour leurs valeurs

  • Les intervalles indexés de sortie de formules évitent les scans répétés des lignes précédentes lors de la reconstruction de grands graphes de dépendances, y compris les références aux sorties matricielles et les dépendances s'étendant sur plusieurs feuilles de calcul
  • L'enregistrement XLS classique préserve les caches de formules chargés ou calculés, y compris les racines de formules partagées et matricielles ; les caches manquants conservent le repli de calcul, tandis qu'un Recalculate explicite rafraîchit les valeurs existantes
  • Les références scalaires de noms définis croisent les plages à une ligne ou une colonne à la cellule de formule, tandis que les arguments de plages d'agrégats et de recherche conservent les plages complètes ; le recalcul évite les faux cycles de plages, priorise les caches de recherche finalisés et préserve la précision en virgule flottante dans l'arithmétique mixte entière et flottante
  • Les aller-retours XLSX conservent les formules dynamiques de zones d'impression, les unions de plages qualifiées et l'index de police phonétique à valeur zéro requis ; les parties générées et préservées partagent des déclarations de types de contenu uniques, tandis que les propriétés personnalisées et les relations racine opaques conservent des IDs de relation distincts
  • Le XLS classique conserve l'absence des enregistrements de marges importés jusqu'à ce que la marge correspondante soit explicitement définie, sans changer la sortie des marges par défaut des nouveaux classeurs
  • AGGREGATE traite indépendamment les erreurs non mises en cache et la sélection imbriquée, avec des sémantiques distinctes de référence et de tableau calculé pour les options 0 à 7
  • Les aller-retours XLSX conservent le XML de graphiques et les décalages d'ancres de graphiques non modifiés, les noms, tailles et schémas de polices des mises en forme conditionnelles, les indicateurs de style explicites et les couleurs RGB, ainsi qu'une orientation de page non spécifiée quand seules les marges sont définies
  • Modèle objet complet : classeur, feuille de calcul, plage, formule, mise en forme, image, lien hypertexte, nom défini, protection, mise en page et export de rapports
  • Les métadonnées de colonnes classiques exposent les marqueurs de repli de plan indépendamment de l'état masqué et du niveau de groupement, en les préservant à travers les aller-retours XLS bruts, les copies de formats de colonnes et les copies de feuilles de calcul
  • La mise en page classique expose HasSetupRecord et PrinterSettingsInitialized, préserve octet par octet un enregistrement BIFF Setup intact, garde absent un enregistrement absent, et n'initialise les champs dépendants de l'imprimante que lorsque leurs setters l'exigent
  • La conversion XLS vers XLSX et XLSX vers XLS transporte indépendamment la mise en page typée et les octets opaques du pilote d'imprimante, garde les champs standard faisant autorité face aux valeurs par défaut privées dupliquées, et rejette les réglages BIFF8 non représentables avant d'écrire la destination
  • Les classeurs XLS classiques et XLSX exposent des politiques SaveExternalLinkValues et UpdateLinks équivalentes ; les valeurs de classeurs externes en cache peuvent être omises sans supprimer les définitions de liens ni les caches en mémoire, les déclarations source invalides et intactes restent sans perte, la conversion entre formats conserve des valeurs de politique légales, et les préférences de mise à jour ne déclenchent jamais d'accès fichier ou réseau
  • Les classeurs XLSX exposent une détection, un comptage et une suppression atomique exacts des volets de tâches de Web Add-ins ; la suppression valide des fermetures de relations internes bornées avant mutation, préserve toute partie partagée par une autre relation, supprime les parties de relations détenues et les entrées de types de contenu périmées, empêche la résurrection par copie de source compressée et reste idempotente, tandis que le XLS classique et l'ODS signalent l'opération comme non prise en charge sans scan du package
  • Les feuilles de calcul XLS classiques et XLSX exposent des méthodes équivalentes de sélection consciente des volets et de défilement en base 1 via TXLSPanePosition ; TryGetWindowScroll et ScrollWindow projettent les axes partagés haut, bas, gauche et droite sur l'état de vue natif à deux niveaux de chaque format, les préservent à travers enregistrement, ouverture et copie de feuille, et rejettent atomiquement les volets manquants ou les coordonnées invalides ; les instantanés de sélection restent ordonnés, chevauchants et détenus par l'appelant, les éditions structurelles de lignes ou colonnes entières remappent chaque volet en préservant l'identité de la zone active avec des replis déterministes de cellule survivante et de cellule de bordure, et les opérations sur grandes zones restent linéaires amorties ; le XLS classique agrège en outre les enregistrements de sélection consécutifs, préserve les corps d'enregistrements intacts ou invalides, signale les groupes mal formés via xlsDiagnosticSelectionRecordInvalid et découpe les sélections de plus de 1369 zones
  • L'unité lxOutline neutre vis-à-vis du moteur construit la géométrie de plan de lignes ou colonnes à partir d'étendues éparses triées, découvre les nœuds summary-before ou summary-after en O(log n + k) et crée des plans idempotents compressés pour le repli de nœuds, les changements de niveau d'affichage, la préservation des enfants imbriqués et les mises à jour récursives d'état enfants, sans scanner les coordonnées inutilisées de la feuille ; les deux moteurs de feuilles exposent les mêmes méthodes de requête et de contrôle de nœuds, tandis que les groupes OpenDocument conservent leur état d'affichage natif et se convertissent en marqueurs de nœuds de synthèse XLSX
  • Les classeurs XLS classiques et XLSX exposent le même contrat ResolveIndexedColor sans effet de bord pour les index de couleurs publics, les valeurs BIFF icv et les couleurs indexées OOXML ; les jetons palette, automatique, système et invalides restent distincts, l'index de bordure zéro garde sa signification indéterminée, la sortie ARGB est normalisée, et les couleurs du système d'exploitation ne sont résolues que via un callback explicite de l'appelant
  • Les deux moteurs de classeurs exposent une requête NearestIndexedColor sans effet de bord adossée à un cache OKLab conscient des mutations ; elle ne cherche que parmi les 56 entrées physiques de la palette BIFF, retourne les index publics et physiques avec la distance et les métadonnées de correspondance exacte, rejette l'alpha partiel et départage les égalités de distance vers l'index public le plus bas
  • Les deux moteurs de classeurs exposent un inventaire ScanIndexedColorUsage déterministe et sans effet de bord pour les 56 emplacements physiques de la palette, avec valeurs ARGB normalisées, comptages de définitions et de références, types de consommateurs et verrous de préservation à travers styles, cellules éparses, objets de feuille, graphiques, commentaires et mises en forme conditionnelles, sans matérialiser les cellules inutilisées
  • Les deux moteurs de classeurs exposent un aperçu BuildBiffPalettePlan sans mutation qui protège les consommateurs indexés, agrège les couleurs de thème directes et résolues par fréquence de rendu, préserve les correspondances exactes existantes, mappe les couleurs de façon déterministe via OKLab, et rapporte l'identité de la source, les changements d'emplacements, la couverture exacte, l'erreur pondérée et la quantification des débordements, sans changer le classeur ni le comportement d'enregistrement
  • Les deux moteurs de classeurs peuvent valider et appliquer atomiquement un plan courant à 56 emplacements via ApplyBiffPalettePlan, en rejetant toute entrée périmée ou falsifiée avant mutation et en reconstruisant une seule fois l'appariement perceptuel ; les classeurs classiques fournissent en plus un BiffPaletteSavePolicy explicite dont la valeur par défaut préserve la sortie historique, dont le mode d'optimisation ne s'applique qu'au BIFF8 et dont les enregistrements échoués ou annulés restaurent la palette d'origine
  • Les deux moteurs de classeurs exposent une valeur TXLSRenderCalibration validée avec des contrôles de largeur, hauteur, espacement multiligne, marges de cellules, mise à l'échelle écran et DPI de mesure ; l'affectation est atomique, la capture retourne un instantané d'opération indépendant, les valeurs par défaut sont déterministes, et le réglage d'exécution n'est jamais sérialisé ni utilisé seul pour redimensionner la géométrie de la feuille
  • Les deux moteurs de classeurs créent des services IXLSRenderGeometry détenus par l'opération dont la calibration immuable, la génération du classeur, le backend, la signature complète des polices, la largeur de retour à la ligne et le texte forment une identité locale bornée de cache de métriques ; la mesure GDI partagée et les conversions pixel, point, largeur de colonne, MDW et largeur utile de cellule éliminent les caches AutoFit globaux au processus de DPI et de largeur de base, tout en tenant la mise à l'échelle écran hors de la mise à l'échelle des coordonnées de sortie
  • L'AutoFit XLS classique et XLSX capture un instantané de géométrie de rendu par opération et applique mesure de polices calibrée, retour à la ligne, espacement de lignes et marges de cellules ; la pagination capture la même géométrie locale au classeur à chaque construction, si bien que les tailles de page par défaut restent stables, les changements de calibration ultérieurs exigent une reconstruction explicite, et le calcul de page n'écrit jamais les hauteurs de lignes ni les largeurs de colonnes stockées
  • La pagination PDF, SVG, bitmap, aperçu avant impression et visionneuse de classeurs identifie son propre backend de rendu et conserve une calibration de classeur immuable pour toute l'opération ; l'ajustement de texte de page partagé et le retour à la ligne SVG utilisent le cache de métriques borné local à l'opération avec les styles de polices complets et l'identité de charset, au lieu d'objets de mesure globaux au processus
  • Les exports de datasets TDataToXLS peuvent n'inclure que les champs sélectionnés ou exclure les champs sensibles, en gardant en-têtes, lignes de données, callbacks et largeurs de colonnes alignés
  • Les tableaux dynamiques XLSX automatiques se redimensionnent et possèdent leurs cellules de débordement, préservent les obstructions utilisateur avec #SPILL!, prennent en charge A1# et le @ unaire, et récupèrent la propriété après réouverture ; les formules CSE fixes évaluent l'arithmétique de plages brutes élément par élément
  • Les MAP multi-tableaux et FILTER à tableaux calculés préservent les erreurs par élément, tandis que les métadonnées rich-value XLSX conservent les erreurs typées #SPILL! et #CALC!
  • GetConversionReport inventorie les pertes connues du format cible sans mutation, et SaveAsChecked sur option peut les rejeter avant écriture ; la sortie explicite xlsxOpenXMLMacroEnabledTemplate crée des packages XLTM et préserve le VBA existant
  • Les implémentations TXLSQueryTableProvider fournies par l'appelant rafraîchissent transactionnellement les données de query tables à schéma fixe, en redimensionnant plages de tables et de filtres avec résultats bornés, progression, annulation et rollback
  • Les requêtes automatiques de bases de données lient des paramètres positionnels bornés depuis des littéraux explicitement typés ou des cellules de feuille stockées, y compris Unicode, texte vide, dates, nulls et caches de formules disponibles ; Jet et ACE préservent les dates typées sans conversion d'horodatage dépendante de la locale, et le rafraîchissement applique les résultats transactionnellement
  • Les requêtes Text automatiques rafraîchissent des fichiers délimités ou à largeur fixe avec décodage explicite, champs typés, colonnes ignorées, lignes d'en-tête et de départ configurées, et mises à jour transactionnelles bornées ; les positions à largeur fixe utilisent des unités de code UTF-16 décodées, retirent le remplissage et conservent les colonnes déclarées sur les enregistrements courts
  • La validation d'import contrôle types scalaires stricts, bornes numériques et de dates, unicité composite et relations inter-colonnes contre les valeurs stockées et les caches de formules, avec violations structurées adressées par cellule et opérations explicites d'annotation ou de classeur de correction
  • CELL lit l'identité réelle du fichier référencé, les formats de nombre de base pris en charge, l'alignement, l'état verrouillé et la largeur de colonne sur XLS et XLSX ; INFO("recalc") lit le mode de calcul du classeur, tandis que les informations d'environnement d'application Excel indisponibles retournent une erreur explicite
  • Les bandes de rapports répétées clonent des conversations en thread complètes avec identités remappées, et la pagination native partagée rend les étendues de cellules fusionnées tandis que les caches de graphiques se rafraîchissent depuis les plages locales prises en charge après éditions et recalcul
  • Calcul de formules intégré avec registres de fonctions utilisateur globaux au processus et locaux au classeur, sémantique de surcharge des noms locaux, invocation de handlers sans verrou, callbacks OnUserFunction et OnUserFunctionEx, plus les fonctions Excel courantes de texte, date, jour ouvré, ingénierie/conversion de bases, opérations binaires, statistiques, agrégats, mathématiques et tableaux dynamiques, notamment opérateurs de tableau broadcast avec erreurs par cellule, matrices LINEST / LOGEST multivariables complètes, prédictions TREND / GROWTH façonnées, SORT stable de lignes ou colonnes, SORTBY stable multi-clés de lignes ou colonnes avec directions indépendantes et clés tableau, arrondis CEILING.MATH / FLOOR.MATH conscients des tableaux avec broadcast singleton et erreurs locales, évaluation stable et consciente des tableaux de COT / ACOT / COTH / ACOTH / CSC / CSCH / SEC / SECH avec erreurs locales et branches sûres pour grandes entrées en cas de débordement, calculs de répétition COMBINA / PERMUTATIONA avec contrôle de débordement, matrices identité MUNIT bornées en mémoire, conversion UNICHAR par scalaire Unicode, texte de monnaie thaïlandaise via BAHTTEXT, inspection ISFORMULA préservant les références sans recalcul de la cible, UNIQUE de lignes ou colonnes par index de hachage, résultats FREQUENCY propagés, XMATCH / XLOOKUP binaires logarithmiques, détection d'arguments facultatifs ISOMITTED, conversion de tableaux ARRAYTOTEXT / VALUETOTEXT, calculs XIRR / XNPV validés, échéancier et taux de croissance d'investissement PDURATION / RRI, et amortissement VDB à périodes fractionnaires, plus des liaisons LET complètes et des fermetures LAMBDA appelables via des noms définis et capturées lexicalement dans LET
  • EvaluateFormulaAt, neutre vis-à-vis du moteur, évalue un texte de formule A1 ou R1C1 dans un contexte explicite de cellule de feuille de calcul sans muter le modèle de cellules, le cache, l'état dirty, la feuille active ni le graphe de dépendances ; les résultats typés préservent erreurs de formule, tableaux, valeurs vides, volatilité, annulation, autorisation des références externes et catégories d'échec stables, tandis que IXLSFormulaEvaluationTemplate réutilise une ancre compilée immuable à travers les cellules cibles, sous des budgets configurables de longueur de formule, d'étapes, de récursion et de mémoire de tableaux
  • XLS classique et XLSX exposent des méthodes ValidateFormulaEntry équivalentes sans mutation, une FormulaEntryPolicy au niveau du classeur et des scans AuditFormulaSymbols analysés à travers cellules et noms définis, avec des scans XLS classiques peu denses plus rapides et un parcours unique des symboles qui préserve les constats indépendants de fonctions et de noms, la portée, la déduplication et l'ordre des constats ; entrée vide exacte, formules retournant une chaîne vide, fonctions inconnues, noms inconnus, échecs de syntaxe, cibles invalides et limites du format cible restent distincts, l'affectation normale de formules applique atomiquement rejet strict ou préservation, les symboles inconnus préservés s'évaluent et se propagent en #NAME?, les changements d'UDF ou de noms définis invalident les dépendances périmées, le BIFF classique stocke les appels inconnus préservés comme fonctions utilisateur de macros complémentaires, la validation reconnaît fonctions utilisateur enregistrées ou par callback, lambdas lexicales et de noms définis, placeholders de rapports, liens externes enregistrés et références structurées valides sans invoquer les handlers, et les callbacks de fonctions externes ou de style macro dangereux restent bloqués avant l'évaluation des arguments, sauf autorisation explicite
  • Inspection sans perte des jetons de formule et mutation sous garde pour les deux moteurs de classeurs via TXLSFormulaTokenStream, ParseFormulaTokens, GetFormulaTokens, FormulaTokensToText et SetFormulaTokens, avec flux détenus par l'appelant, projections de jetons en lecture seule, charges utiles BIFF brutes, indicateurs de référence indépendants, clonage, remplacement atomique de références, provenance de contexte et validation avant réécriture
  • Tables de données What-If à une variable en ligne, à une variable en colonne et à deux variables, avec recalcul isolé des dépendances, erreurs d'entrées supprimées, éditions structurelles, copies de feuilles et prise en charge de l'aller-retour BIFF8
  • Scan de cellules, recherche & remplacement de modèles, remplissage de plages par callback, écritures directes de tableaux typés via ForEachCell, FindText, ReplaceText, WriteCells et les méthodes d'écriture de lignes et colonnes numériques, chaînes et variant, plus un ConvertFormulasToValues de feuille entière ou de cellule unique qui fige les formules dans leurs résultats calculés en conservant la valeur en cache
  • L'inspection de caches de formules, neutre vis-à-vis du moteur, via IXLSFormulaCacheReader et le CreateFormulaCacheReader de chaque moteur de classeurs rapporte présence, provenance chargée ou calculée, et type vide, nombre, date-heure, chaîne, booléen ou erreur, sans évaluer de formules, invoquer de fonctions utilisateur, décompiler des jetons ni changer l'état du classeur ; des leases à durée de vie invalident les readers en sécurité après destruction du classeur, les membres de formules partagées conservent des caches indépendants, et XLSX et ODS préservent erreurs typées et caches vides explicites à la réouverture
  • IXLSWorkbook.CreateReadOnlyView classique et IXLSXWorkbookOwner.CreateReadOnlyView XLSX créent des instances IXLSReadOnlyWorkbookView à modèle partagé en temps constant, avec feuilles actives locales à la vue, instantanés de cellules stockées par valeur, aucune exposition d'objets inscriptibles, résultats de formules en cache par défaut, et texte de formule ou évaluation de formules isolée sur option ; les vues concurrentes gardent privé l'état de récursion, les caches scalaires et tableaux et les formules XLSX compilées, l'évaluation externe XLSX ne lit que les caches de liens locaux au fichier, les cellules packées restent non matérialisées, et chaque vue détient un lease de lecture qui rejette les écritures au modèle avant toute mutation
  • À partir de la 2.384.51, TXLSReadOnlyCellSnapshot.SheetName est une propriété WideString lisible et inscriptible adossée à un stockage UnicodeString partagé, ce qui réduit l'allocation de nom par cellule ; la syntaxe ordinaire de lecture et d'affectation ne change pas, mais l'adresse brute du champ et l'ancienne disposition d'enregistrement ne sont plus prises en charge, et les appelants doivent recompiler
  • TXLSWorkbookWorkspace accepte des adaptateurs révocables XLS classique, XLSX ou ODS issus du CreateWorkspaceWorkbook de chaque moteur, préserve les identités complètes de chemin ou d'IRI, résout les feuilles externes par nom avant position, et évalue les formules externes via enregistrements actifs explicites, un loader facultatif contrôlé par l'appelant à une fois par identité, des caches de fichiers typés et #REF! ; les demandes de chargement concurrentes partagent un seul résultat, les diagnostics typés exposent échecs et limites de ressources, les méthodes d'enregistrement de compatibilité restent disponibles sur les deux façades de classeurs, les cibles détruites se déconnectent en sécurité, et le recalcul n'ouvre jamais implicitement un fichier ni une ressource réseau
  • TXLSWorkbookWorkspace.BuildDependencyGraph extrait un graphe de formules inter-classeurs unique depuis les modèles XLS classique, XLSX et ODS enregistrés, conserve les identités complètes de classeurs et de feuilles, préserve les noms définis symboliques locaux et externes, résout les noms locaux vers leurs dépendances concrètes quand c'est possible, et stocke les grandes plages rectangulaires comme intervalles compacts ; des arbres d'intervalles de lignes accélèrent la construction d'arêtes et la recherche de dépendants, et la construction du graphe lit le stockage XLSX packé sans le matérialiser
  • TXLSWorkbookWorkspace.Recalculate conserve et marque incrémentalement comme sales le graphe de dépendances partagé, ordonnance les nœuds de formules acycliques en ordre topologique inter-classeurs, rejette les vrais cycles de formules fortement connexes sans rejeter les liens bidirectionnels inoffensifs entre classeurs, et partage un cache de cellules externes local à la passe avec des diagnostics explicites de hit, miss, invalidation et nœuds bloqués ; les appels d'un même workspace sont sérialisés, la suppression pendant une passe retourne un statut workspace-modifié via des instantanés d'adaptateurs sûrs, la destruction attend les calculs actifs, et les nœuds en échec restent sales pour une nouvelle tentative explicite
  • CalculateAndVerify compare les résultats de formules stockés avec des calculs non volatils frais et rapporte des diagnostics de feuille, cellule, formule, valeur attendue et valeur réelle, sans remplacer le cache ; RecalcAndVerifyEx ajoute l'audit approfondi avec un overlay isolé de résultats du graphe de dépendances, des catégories d'échec typées à piles d'appels bornées, l'annulation de la progression et une application atomique sur option des valeurs recalculées
  • Les tolérances de l'audit approfondi filtrent les rapports de divergence sans supprimer les résultats intermédiaires frais : les formules dépendantes utilisent les valeurs auditées, et l'application explicite rafraîchit les caches modifiés même quand aucune divergence n'est signalée ; tolérance absolue et relative s'appliquent toutes deux aux résultats en double précision
  • Les audits approfondis de formules du XLS classique réservent la capacité de parcours et copient efficacement les instantanés en cache consécutifs de doubles simples, tout en préservant les autres types Variant et la surcouche d'évaluation isolée
  • Le recalcul classique utilise un graphe de dépendances construit à la demande, propage les entrées sales uniquement aux dépendants transitifs, recalcule les formules volatiles à chaque passe, évalue les formules acycliques en ordre de dépendance et applique l'itération des composantes fortement connexes pour les références circulaires ; la désactivation de la pleine précision arrondit les caches de formules et de tables de données What-If à leur précision numérique affichée effective, avant que les dépendants ne les consomment
  • AutoFilter, validation de données de listes, tableaux Excel avec dispositions sans en-tête et commentaires par tableau plus évaluation de formules à références structurées (Table[Col], étendues de colonnes, [#Data] / [#All] / [#Headers] / [#Totals]), extensions de mise en forme conditionnelle (barre de données avec remplissage des valeurs négatives et couleurs de bordure, échelle de couleurs, jeu d'icônes) avec priorités uniques par feuille à l'enregistrement et règles à la portée des tableaux croisés dynamiques routées vers le compartiment d'extension Excel 2010+, et feuilles de graphiques
  • Zones de texte, dessins OfficeArt, import typé de tableaux croisés dynamiques piloté par les relations, matérialisation multi-valeurs filtrée et groupée, champs calculés, éléments et membres, sous-totaux, totaux généraux, tri stable, calculs ShowDataAs classiques et étendus, plus commentaires en texte enrichi
  • Le rafraîchissement transactionnel du cache local de tableau croisé dynamique résout les sources rectangulaires, de noms définis à portée de feuille et de tables à leur géométrie courante, exclut les totaux physiques des tables, conserve l'identité de source à travers déplacements et renommages de feuilles, préserve les identités existantes de champs et de membres à travers réordonnancement, suppression et réintroduction de la source, garde les sélections de vues partagées stables, gère les valeurs d'erreurs typées, et rejette les schémas non pris en charge ou les nouveaux membres de groupes discrets non mappés avant de changer le cache
  • La matérialisation sûre de feuilles de tableau croisé dynamique évalue un cache isolé, rejette les chevauchements dangereux, préserve les objets cellules et la mise en forme, et suit les valeurs détenues exactes à travers redimensionnements, déplacements et réouvertures XLSX
  • La sélection typée de Slicers de tableau croisé dynamique non-OLAP inspecte et modifie les sélections de membres partagés importées, intersecte les filtres des vues connectées, préserve les restrictions indépendantes sur d'autres champs, et rejette les liaisons ambiguës ou non prises en charge avant mutation
  • Aller-retour BIFF8 haute fidélité qui préserve les enregistrements créés par Excel, les couleurs RGB et de thème exactes, les vues personnalisées et les métadonnées de partage / révision
  • Classeurs protégés par mot de passe via le chiffrement RC4 BIFF8, plus enregistrement et chargement XLSX chiffrés Agile avec un HMAC d'intégrité de données vérifié sur le package chiffré, et réservations d'écriture classiques (SetModifyPassword) portant l'indicateur de lecture seule recommandé, le hachage du mot de passe et le nom de l'utilisateur réservant
  • Les surcharges d'AutoFit des cellules fusionnées peuvent attribuer la croissance requise de ligne ou colonne au premier membre, au dernier membre, ou la répartir uniformément sur l'étendue fusionnée, en préservant l'état masqué et en respectant les bornes de chaque membre
  • Copie de feuille de calcul entre classeurs (TXLSWorksheets.AddCopy) qui clone dans un autre classeur les valeurs de cellules, formules (recompilées d'après les noms de feuilles de la destination), formats avec couleurs RGB / thème exactes, cellules fusionnées, commentaires, liens hypertexte, disposition des lignes et colonnes, volets figés, protection, mise en page, couleur d'onglet, mises en forme conditionnelles, validations de données, critères d'AutoFilter, tableaux, images incorporées, segments de texte enrichi (avec leurs polices migrées par valeur) et feuilles de graphiques (avec références de séries recompilées vers la destination) ; les formules dont les feuilles manquent dans la destination se repointent vers le classeur source comme lien externe quand celui-ci a une identité de fichier
  • Vues de tableaux croisés dynamiques à cache partagé, création locale de Slicers de tableau croisé dynamique et suppression explicite consciente de la sélection, rafraîchissement fixe de caches groupés et aperçus de métadonnées de disposition compacte natives
  • La sortie de feuille de calcul native transactionnelle de tableaux croisés dynamiques prend en charge les dispositions groupées et les sous-totaux de lignes personnalisés ; les champs calculés SUM locaux et éléments détenus par le cache préservent les sommes de contexte, l'ordre de résolution, les calculs d'affichage et le filtrage pris en charge, tandis que les états non pris en charge sont rejetés avant mutation
  • Les Timelines de tableau croisé dynamique et états de données des Slicers fournissent un filtrage local de dates sous garde, un cycle de vie de vue partagée et un rafraîchissement natif explicite d'éléments sans données
  • Les fournisseurs de requêtes automatiques rafraîchissent explicitement les requêtes Text, ADO, ODBC et Web prises en charge, avec résultats bornés et fournisseurs personnalisés enregistrés
  • L'inspection des graphiques classiques décode les tables de remplissage OfficeArt natives prises en charge, expose les diamètres de marqueurs en points et valide les étendues de texte et d'annotations stockées avant d'appliquer un état typé ; le stockage brut des graphiques est conservé et l'apparence portable des graphiques classiques reste validée séparément
  • La sortie headless portable capture des rectangles XLS classiques ou XLSX pris en charge dans des instantanés immuables et rend PDF, SVG et PNG sous Linux et macOS avec géométrie de polices explicite, texte enrichi, objets de dessins modélisés, images dans les cellules, cases à cocher booléennes, graphiques XLSX en cache pris en charge et graphiques BIFF8 en cache bornés avec disposition déclarée par l'appelant et taille effective de légende
  • Les arguments de tableaux calculés textuels et statistiques préservent les coercitions et erreurs spécifiques aux fonctions, appairent les covariances par positions d'origine et respectent les budgets de calcul
  • Les noms définis dans les calculs d'agrégation préservent les coercitions scalaires, de tableaux et de références, les erreurs typées, les dépendances et les limites de ressources

Façade XLSX moderne

Un moteur OOXML dédié construit autour de TXLSXWorkbook pour les classeurs Excel 2007+ (.xlsx)

  • Chaînes partagées, styles, dessins, fonctionnalités de feuille, packaging ZIP/XML et métadonnées d'aller-retour, y compris la gestion des Xstring SpreadsheetML consciente des champs, qui préserve les caractères de contrôle et les jetons littéraux _xHHHH_ sans réécrire la syntaxe des formules
  • La mise en page des feuilles de calcul conserve des réglages d'imprimante binaires identiques à l'octet près via la relation pageSetup et la partie printerSettingsN.bin par feuille, accepte des emplacements de parties source non standard, écrit des cibles canoniques déterministes, copie en profondeur la charge utile à travers les copies de feuilles intra-classeur et inter-classeurs, et signale les relations d'imprimante manquantes, de mauvais type ou pendantes, sans lier une partie binaire sans rapport
  • Les writers typés de lignes et colonnes numériques, chaînes et variant font croître géométriquement la capacité des cellules à travers des lots répétés, ajoutent les lots de lignes en avant directement dans des vecteurs de lignes épars pré-dimensionnés, coupent en sécurité aux limites de la feuille, préservent des handles stables en cas de chevauchement et évitent le dispatch par callback
  • OpenDocument (.ods) en lecture et écriture : import des feuilles existantes via Open / OpenODS, export via SaveAsODS ou SaveAs(xlsxOpenDocumentSpreadsheet), sortie ajustable avec TODSExportOptions, et aller-retour des styles, texte enrichi, images, graphiques, validations, mises en forme conditionnelles, mise en page, zones d'impression, groupes de plan, structure de feuilles et métadonnées de classeur ; les options d'export conservent le recalcul normal, l'annulation via la progression, les diagnostics et la protection en écriture, et la sortie fichier préserve la destination existante en cas d'échec de sérialisation ou d'annulation
  • Les règles ODS de comparaison de cellules et d'expression préservent le style de police différentiel, les arrière-plans pleins ou transparents et les formats de nombre pris en charge sur l'intégralité de cibles couvrant lignes entières, colonnes entières et larges plages, grâce à des cellules porteuses de blancs répétés compactes ; les attributs explicitement effacés survivent, la mise en forme de base sans rapport reste sur chaque cellule, et les couleurs de thème ou indexées sont exportées comme couleurs résolues
  • Import multi-format : OpenDocument (.ods) et CSV / TSV avec détection du séparateur, détection du BOM et inférence facultative des types de valeurs
  • Détection par signature de contenu : DetectExcelContentFormat inspecte les premiers octets d'un fichier ou d'un flux pour distinguer fichiers composés BIFF, packages OOXML, packages OpenDocument et texte délimité brut, quelle que soit l'extension, et les deux moteurs de classeurs rejettent les conteneurs inadaptés avec un message clair nommant le bon loader
  • Texte d'affichage formaté : la propriété FormattedText en lecture seule (sur IXLSRange et TXLSXCell) restitue la valeur d'une cellule à travers son format de nombre — séparateurs, pourcentages, masques date/heure, masques multi-sections, formats booléens — à l'identique de ce qu'Excel affiche dans la grille
  • Surveillance des modifications de fichier : TXLSFileMonitor surveille un classeur sur disque et déclenche OnFileChanged quand un autre processus l'écrase, avec un intervalle de polling configurable et une remontée des événements sur le thread principal ou le thread de surveillance ; les handlers peuvent arrêter ou détruire le monitor, ou changer le fichier surveillé
  • Invite de mot de passe : l'événement OnPassword du moteur XLS classique demande un mot de passe à l'application quand Open rencontre un classeur chiffré dont le mot de passe est manquant ou erroné, puis relance l'ouverture
  • Pinceau de format : TXLSXCellFormat décrit une seule fois police, remplissage, bordure, alignement, format de nombre et protection, puis tamponne cellules, plages, lignes, colonnes ou feuilles entières — seuls les aspects touchés s'appliquent, et les index du pool sont résolus une fois par application pour une mise en forme en masse rapide
  • Lignes en flux unifiées : TXLSRowCursor parcourt des sources .xls, .xlsx, .xlsm, .ods, CSV ou TSV ligne par ligne (FindFirst / FindNext) en ne gardant en mémoire que la ligne projetée courante ou le modèle de répétition ODS, en poussant bornes de lignes et sélection de colonnes avant l'allocation des valeurs, en préservant les résultats de formules en cache et les blancs stylés stockés, en distinguant la présence d'une formule de la disponibilité de son texte, en supprimant facultativement le texte de formule, en sautant les cellules couvertes ODF, en sautant directement entre colonnes sélectionnées dans les étendues ODS répétées, en décodant les BOM UTF-8 ou UTF-16 et les enregistrements de texte multilignes quotés, en détectant les séparateurs virgule, point-virgule, tabulation ou barre verticale, et en fournissant une recherche ValueByCol en temps constant ; états de cycle de vie explicites, annulation idempotente, propriété de flux empruntée ou transférée, vues de lignes zéro-copie à vérification de génération, PeakRowBufferedBytes et SheetPassesStarted rendent les scans de longue durée observables et sûrs, tandis que TXLSForwardReader adapte les mêmes backends à des callbacks de feuilles et de cellules en base 1, sans ouvrir les parties de feuilles sautées
  • Progression et diagnostics : les classeurs XLS classiques et XLSX fournissent des callbacks de travail plus des callbacks begin/work/end avec annulation, tandis que IXLSWorkbookProgress et TXLSXWorkbook.Diagnostics exposent codes stables, sévérité, opération, contexte de feuille ou de package, valeurs de retour natives et détails d'exceptions
  • Enregistrements sûrs en cas d'échec : les échecs de commit de feuille classique, graphique, extension de style, VBA, flux de contrôles, stockage et sortie sont propagés à l'appelant, tandis que la sortie disque XLS, XLSX et ODS est mise en scène avant le remplacement atomique de la destination
  • Le remplacement de destinations Windows tolère les handles de métadonnées et de lecture autorisant la suppression sur les systèmes de fichiers prenant en charge le renommage POSIX, tandis que les lecteurs existants conservent les octets d'origine ; l'accès en suppression, les verrous non partageables en suppression et la protection en lecture seule sont vérifiés avant un commit unique, sans nouvelle tentative d'enregistrement, et les systèmes de fichiers plus anciens ou non pris en charge conservent le chemin de commit historique
  • Diagnostics d'enregistrement fichier actionnables : TXLSXWorkbook.SaveAs(FileName) et sa surcharge à format explicite préservent l'erreur Windows native quand le remplacement de la destination échoue, avec le code de diagnostic 1005 et la destination d'origine intacte
  • Stockage compact des cellules et styles : les cellules XLSX vivent dans des blocs de 256 lignes avec handles publics stables et sérialisation rangée par rangée friendly au cache ; les entrées de lignes ne portent pas de tag de charge utile redondant, et les changements de valeur, formule et texte enrichi évitent la reclassification d'index ; les styles de cellules importés se résolvent via un unique tableau cellXf immuable à index direct ; et la compaction automatique du pool de styles élimine polices, remplissages, bordures, formats de nombre, alignements et protections non référencés avant chaque enregistrement
  • Surcharges de styles par intervalles : la mise en forme de lignes, colonnes et rectangles reste compacte sans matérialiser d'objets cellules vides, se résout paresseusement à l'accès à la cellule, survit aux éditions structurelles, et fait l'aller-retour sous forme d'entrées compactes de colonnes, lignes et cellules à style seul
  • Enregistrement normal en flux par lignes : StreamingWrite (le défaut) écrit chaque ligne de feuille directement dans le flux deflate du package, si bien que la mémoire maximale suit la plus grande ligne unique, tandis que les chaînes partagées et les parties XML auxiliaires transitent une entrée à la fois par un unique sérialiseur UTF-8 réutilisable
  • Ouverture metadata-only : TXLSXWorkbook.MetadataOnly analyse propriétés du classeur, noms définis, noms et états de visibilité des feuilles, styles, thème, connexions et liens externes, mais saute le XML de cellules des feuilles ainsi que chaînes partagées, données de commentaires et de personnes, relations de feuilles, dessins, graphiques, tableaux, query tables, tableaux croisés dynamiques et charges utiles opaques accessibles depuis les feuilles, pour une découverte rapide et à faible mémoire des propriétés et des noms dans les grands classeurs
  • Les emplacements de classeurs externes XLSX suivent l'ordre de déclaration de workbook.xml et conservent des placeholders vides pour les relations cassées, en gardant les références de formules [N] ultérieures stables entre chargement et enregistrement
  • Chargement sélectif de feuilles : TXLSXWorkbook.SelectedSheets permet à Open de n'analyser le XML de cellules que pour les feuilles nommées, les autres feuilles gardant leurs noms et leur visibilité mais aucune cellule ; appelez LoadSheet(Index) pour matérialiser à la demande une feuille sautée depuis l'archive d'origine
  • Copie incrémentale de parties compressées : TXLSXWorkbook.PreserveRawParts ouvre une archive source privée validée par opération SaveAs et copie telles quelles les entrées inchangées de thème, projet VBA, connexions, liens externes, images, graphiques, tableaux croisés dynamiques, pivot caches et charges opaques accessibles par relations, avec leurs charges compressées d'origine ; les enregistrements de fichiers réussis deviennent la prochaine base propre, tandis que classeurs adossés à des flux, fichiers source modifiés, charges altérées, méthodes de compression non prises en charge et incohérences de taille compressée passent par des chemins de repli de sérialisation transactionnelle ou de rejet
  • Préservation des extensions de classeur : l'ouverture et l'enregistrement XLSX conservent les déclarations d'espaces de noms étrangers à la racine du classeur, les attributs de markup-compatibility, les charges <extLst> complètes au niveau du classeur et leurs relations inconnues, pendant que feuilles typées, noms, vues, propriétés de calcul et pivot caches restent éditables ; les références de relations sont remappées en cas de conflit d'IDs générés
  • Slicers : Worksheet.Slicers.Add(Table, ColumnName) crée des slicers de tableau (Excel 2013+) de bout en bout — cache de slicer, nom défini réservé, extension de feuille de calcul et ancre de dessin inclus — avec contrôle du positionnement, de la légende, du nombre de colonnes, du style et de la hauteur de ligne ; les slicers créés par Excel (tableau ou tableau croisé dynamique) font l'aller-retour intacts à travers ouverture et enregistrement, les parties et ancres non modifiées étant rejouées octet pour octet pendant que le classeur autour reste entièrement éditable
  • Fenêtres de classeur multiples : TXLSXWorkbook.WorkbookViews expose une collection ordonnée avec opérations d'ajout, insertion, suppression, déplacement et vidage, état typé de visibilité et de géométrie, attributs et extensions inconnus éditables, et remappage des workbookViewId de feuilles ; les propriétés historiques de fenêtre unique restent des projections compatibles de la première vue
  • Noms définis externes et échecs d'actualisation : TXLSXExternalLink analyse, stocke et fait circuler les entrées <definedNames> des classeurs liés, tandis que chaque TXLSXExternalSheetData suit un indicateur RefreshError pour l'état d'échec d'actualisation, sans exiger de source de données vivante
  • Import de presse-papiers multi-format : XLSPasteFromClipboardRich préfère le format de presse-papiers XML Spreadsheet (formules, styles, fusions) au texte Unicode brut, avec fonctions dédiées de détection de format, d'extraction et d'analyse SpreadsheetML 2003
  • Échange de presse-papiers Biff8 natif : CopyToClipboard sur les deux moteurs publie la charge « Biff8 » propre d'Excel en document composé, à côté du texte et du HTML, et PasteFromClipboard la consomme en priorité — les valeurs arrivent sans re-analyse dépendante de la locale, les références de formules relatives se réancrent sur la cible de collage, et formats de nombre, polices, remplissages, bordures, alignements et cellules fusionnées font l'aller-retour aussi bien entre classeurs HotXLS que depuis des copies Excel
  • Le PasteFromClipboard XLS et XLSX capture le BIFF8 et le texte de repli ensemble sous un seul verrou de presse-papiers, conserve la politique de relance existante et utilise le texte capturé lisible sans rouvrir le presse-papiers quand le BIFF8 est indisponible ou inanalysable ; un BIFF8 lisible reste exploitable si son compagnon texte ne peut pas être récupéré, et un texte seul indisponible n'insère aucune cellule
  • Les échecs de publication du texte requis et du BIFF8 dans le presse-papiers préservent le diagnostic Win32 GetLastError d'origine à travers le nettoyage, pour inspection immédiate par l'appelant
  • Balisage de texte enrichi : la propriété de cellule TaggedText convertit dans les deux sens entre segments de texte enrichi et balises légères (<b>, <i>, <u>, <s>, <sub>, <sup>, <color=#RRGGBB>, <font=Name>, <size=N>)
  • Readers de presse-papiers sûrs en 64 bits avec relance en cas de contention, correspondance en cache des cibles de mises en forme conditionnelles et de validations de données pour les zones absolues, inversées, de lignes entières, de colonnes entières et séparées par des espaces, recherche de règles cohérente, suppression, évaluation conditionnelle et contrôles de validation, et index de liens hypertexte PDF par recherche binaire
  • Extensibilité du calcul : enregistrement de fonctions utilisateur par nom, API d'audit des fonctions inconnues, ouvertures en mode récupération qui sautent les parties endommagées, échange de presse-papiers Biff8 natif et correspondance de plages de validation de données en cache
  • Images PDF : les images de feuilles s'incorporent en XObjects Flate RGB avec pass-through JPEG et réutilisation des flux PNG (sans réencodage, canal alpha préservé via soft masks), les images identiques à l'octet près ne s'incorporent qu'une fois, les blocs keep-together et XlsxAutoPageBreaks alignent la pagination, et ZipCompressionLevel et DeterministicOutput contrôlent la sortie d'enregistrement
  • Pipeline de sortie PDF : les flux de contenu de page sont compressés en Flate, les opérations de texte consécutives partagent des blocs de texte groupés avec sélection de polices et couleurs dédupliquée, les remplissages adjacents égaux fusionnent en rectangles uniques, et les segments de bordures colinéaires se tracent en runs fusionnés — fichiers plus petits et génération plus rapide ; OnProgress et OnProgressEx avec faculté d'abandon signalent les états begin, page et end, tandis que Cancel arrête les exports longs sans committer un PDF partiel dans le flux de destination
  • Fidélité du texte de cellules PDF : retour à la ligne réel avec alignement vertical des blocs et lignes justifiées ou distribuées, texte pivoté et empilé verticalement, rétrécissement pour adapter, débordement à la manière d'Excel dans les cellules voisines vides avec rognage, alignement à droite des nombres sous l'alignement général, indentation, segments de texte enrichi avec style, taille, couleur, soulignement, barré, exposant et indice par segment, bordures diagonales et doubles, et texte à cheval sur des cellules fusionnées — le tout positionné via des largeurs d'avancement Helvetica calibrées par GDI
  • Fidélité d'impression PDF : en-têtes et pieds de page stylés avec les codes Excel de taille de police, couleur, gras/italique/souligné/barré et exposant/indice, mode d'impression noir et blanc, en-têtes de lignes et colonnes imprimés, centrage d'impression horizontal et vertical, indicateurs de commentaires plus une page de liste des commentaires en fin via PrintCommentsAtEnd, liens GoTo dans le document pour les liens hypertexte internes, préférence PageLayout de visionneuse avec métadonnées XMP, largeurs de colonnes MDW fidèles à Excel, et incorporation de collections TrueType avec coupes gras/italique synthétisées de la police Unicode
  • Graphiques PDF : les graphiques de feuilles se dessinent en vecteurs natifs — colonnes/barres groupées, empilées et empilées en pourcentage, lignes avec marqueurs, aires, secteurs et anneaux avec étiquettes de pourcentage, nuages de points et radars — avec cadres titrés, axes et étiquettes de graduations auto-ajustés, quadrillages, légendes, étiquettes de données, remplissages par série et palette d'accents par défaut d'Excel ; les graphiques ancrés au-delà de la dernière cellule de données étendent la surface imprimée
  • PDF interactif : les liens hypertexte de feuilles deviennent des annotations de liens cliquables et chaque feuille exportée reçoit un signet dans le plan du document
  • Extensibilité au niveau du package : propriétés de document personnalisées typées, parties de données XML personnalisées, compagnons d'images SVG, étiquettes de données de graphiques par série sourcées depuis les cellules avec caches indexés et surcharges de visibilité par point, styles de tableaux définis par l'utilisateur avec couleurs par section, et API d'audit de validation de données qui liste chaque cellule en infraction
  • Améliorations de fidélité de format : les formats de nombre temps écoulé [h]:mm:ss et fraction # ??/?? se rendent partout, les crochets [Red] recolorient le texte PDF, les remplissages dégradés de cellules font l'aller-retour et se rendent en HTML/PDF/visionneuse, volets figés et défilement de volets se relisent, DispBlanksAs/PlotVisibleOnly sont des propriétés de graphiques, les zones de commentaires se dimensionnent via WidthPt/HeightPt/AutoSizeFromText, et ValidateNumberFormat valide les chaînes de format personnalisées
  • Recherche aux sémantiques Excel : FindText / ReplaceText prennent en charge les jokers (*, ?, échappement ~), la correspondance de la cellule entière, la sensibilité à la casse, la recherche dans le texte de formule, le scan arrière, l'ordre de scan colonne par colonne, les FindTextIn / ReplaceTextIn fenêtrés qui confinent la recherche à une plage rectangulaire, et un callback de remplacement par correspondance, le groupement aux sémantiques Excel via AddSubtotals (lignes SUBTOTAL libellées, total général, niveaux de plan, sauts de page et mode remplacement), A1ToR1C1 et R1C1ToA1 qui convertissent les formules entre styles de référence A1 et R1C1 dans les deux sens, plus WriteAutoValue pour la détection de type de texte à la manière d'Excel (dates ISO, US m/j/aaaa et européennes j.m.aaaa avec heures AM/PM facultatives), l'agrégation de plages GetRangeStatistics, le SortRange insensible à la casse qui préserve les formules avec les sémantiques de références Excel (les parties $ restent, les références relatives se réancrent), les fragments HTML de cellule unique GetHtmlFromCell, et les fragments HTML SetCellFromHtml en runs enrichis
  • Arrière-plans de feuilles : SetBackgroundImage crée des images en tiling dans les deux moteurs de classeurs ; XLSX préserve la propriété du média du package à travers les copies de feuilles, tandis que le moteur classique lit et écrit des enregistrements BIFF8 d'arrière-plan typés avec découpage continu de charge utile, préservation exacte des formats inconnus, isolation des copies et conversion des formats connus entre moteurs ; la visionneuse de classeurs affiche les arrière-plans valides derrière les cellules sans remplissage, tandis que l'impression, PDF, SVG, bitmap, métafichier et les deux exporteurs HTML gardent les arrière-plans désactivés par défaut et exposent ExportSheetBackgroundImages pour une sortie explicite avec continuité de phase entre pages et réutilisation des ressources par session
  • Profondeur du moteur de format : les sections conditionnelles de formats de nombre ([>=100]) sélectionnent par valeur, les sections texte (@) servent de gabarit aux chaînes, TaggedText accepte <br>, <strong>/<em> et les formes à attributs <font color=...>, ConvertFormulasToValues propose un mode externe-seulement sur les deux façades, les blocs insécables de colonnes complètent ceux de lignes, les contrôles de formulaire classiques Spinner/ScrollBar s'écrivent en XLS, et l'auto-ajustement de lignes gère les cellules fusionnées
  • Échange de presse-papiers : PasteFromClipboard lit du texte délimité par tabulations dans des cellules avec promotion de types nombre/date/booléen et reconnaissance des formules, tandis que le CopyToClipboard au niveau plage publie à la fois du texte tabulaire Unicode et du HTML stylé, avec formules, cellules fusionnées, liens, mise en forme d'affichage et préservation des délimiteurs incorporés
  • Visionneuse de classeurs éditable : TXLSWorkbookViewer se lie directement à l'un ou l'autre moteur de classeurs, charge les fichiers XLS, XLSX, XLSM, XLTX, XLTM ou ODS, effectue le rendu des styles et mises en forme conditionnelles sans matérialiser les cellules XLSX éparses, et ajoute l'édition sur place consciente des cellules protégées, la saisie dans une barre de formule, le recalcul automatique, la sélection rectangulaire, les événements de références de formules et un undo/redo borné en O(1)
  • Les pivot caches des tableaux croisés dynamiques XLS classiques utilisent des flux de stockage indépendants avec identifiants uniques, références de sources feuille ou nommées, noms de feuilles Unicode, et lecture/écriture de cache chiffrée ; les extensions de caches existantes conservent leurs octets d'origine à l'enregistrement
  • Concepteur de dispositions de tableaux croisés dynamiques réutilisable : TXLSPivotDesigner expose les zones disponibles, lignes, colonnes, filtres et valeurs, le réordonnancement déterministe des champs, l'agrégation par défaut consciente des types, les changements d'agrégation explicites, la validation de disposition et l'application du résultat, pour les modèles de tableaux croisés dynamiques XLS comme XLSX
  • Contrôles de formulaire classiques : les feuilles et collections de formes peuvent créer, énumérer, éditer, supprimer et faire circuler des contrôles bouton, bouton radio, case à cocher, zone de liste modifiable et zone de liste, avec libellés typés, états de case, rendu plat ou 3D, liaisons de macros, cellules liées, plages sources, types de contrôles et ancres de cellules
  • L'inspection des graphiques XLS classiques via GetChartModel décode la famille de graphiques, l'état 3D, les titres du graphique et des axes, la légende, les axes avec leur groupe d'axes principal ou secondaire, les noms de séries, catégories, formules de valeurs et indicateurs d'affichage des étiquettes de données de séries avec séparateurs, la liaison par série au groupe de graphiques principal ou secondaire, les références de catégories et de valeurs nommées ou externes, le style par série de lignes, remplissage et marqueurs avec remplissages aux couleurs du thème portés par l'extension de couleur de thème OfficeArt GelFrame (index de couleur de thème plus teinte), les paramètres complets de scène 3D du flux de graphique, et les liens de graphiques croisés dynamiques (nom de vue du tableau croisé dynamique source plus l'indicateur de masquage des libellés de champs via les enregistrements SXViewLink / PivotChartBits), ainsi que les objets graphiques incorporés ancrés sur des feuilles ordinaires via AddChartObject, avec en plus les courbes de tendance par série (type de régression, ordre ou période, intercept automatique ou fixe, affichage de l'équation et du R², prévision et rétro-prévision, nom d'affichage) et les barres d'erreur (côté de direction, type de valeur, embouts, magnitude)
  • Images d'en-têtes et pieds de page XLSX typées via TXLSXWorksheet.HeaderFooterImages, couvrant tous les emplacements gauche, centre et droite sur les pages impaires, paires et premières, avec octets d'images, formats, titres, dimensions en points, marges en points, codes de champ d'image automatiques, copies de feuilles et aller-retours ouverture/enregistrement sûrs pour les relations, aux côtés des commentaires
  • Effets d'images XLSX éditables via TXLSXImage, notamment bords de recadrage en pourcentage, transparence, luminosité, contraste, remplissage étiré ou en tiling, rotation en degrés et préservation structurelle du DrawingML importé sans rapport
  • Construction avancée de graphiques XLSX et aller-retours avec groupes de tracés ordonnés colonne, barre, ligne, secteur, aire, nuage, bulle, radar, bourse, surface et 3D, vrais graphiques combinés avec ordre de dessin explicite des groupes de tracés, paires d'axes principal et secondaire, axes de dates et de séries typés, vues 3D configurables, styles de la galerie Excel, styles de texte de titre, légende et axes, dispositions manuelles de tracé, de titre, de légende et de titres d'axes, caches de séries épars de chaînes ou de nombres, caches de catégories épars multi-niveaux avec résolution vivante de plages bidimensionnelles, et préservation éditable des extensions et mises en forme ChartML inconnues
  • Patches de format sélectifs : TXLSXRange.ApplyFormatPatch copie uniquement les composants demandés de police, remplissage, bordure, format de nombre, alignement ou protection, pave les motifs sources plus petits sur les destinations plus grandes, et laisse les valeurs de cellules intactes
  • Export de données maître-détail : TDataToXLS.ReadDetailTables exporte récursivement les datasets de détail liés actifs sous chaque enregistrement maître, tandis que IndentDetailTables ajoute une colonne d'indentation par niveau de relation et les réglages d'export hérités gardent la hiérarchie visuellement cohérente ; les événements d'enregistrements et de valeurs write-ahead peuvent filtrer les enregistrements et transformer les valeurs de champs sans perturber les curseurs des datasets
  • Création de WordArt : TXLSXWorksheet.AddWordArt crée du texte DrawingML ancré aux cellules avec déformation prédéfinie configurable, couleur de remplissage du texte et couleur de contour, les cycles ouverture/enregistrement ultérieurs préservant l'ancre complète de la forme
  • Préservation des packages OOXML non pris en charge : les parties personnalisées accessibles depuis des relations inconnues de racine de package, de classeur, de feuille ou de dessin conservent des IDs de relation sûrs face aux collisions, types de contenu, relations enfants, choix de compression et octets de charge exacts à travers les aller-retours ouverture/enregistrement, avec désactivation sur option et diagnostics des parties conservées sur TXLSXWorkbook
  • Tableaux à la Excel avec styles, plage et critères de filtre, état de tri, identifiants de colonnes stables, libellés et fonctions de ligne de totaux, formules de colonnes calculées, formules de ligne de totaux, éditions de lignes et colonnes conscientes de la structure, et assistants de collections aller-retour
  • Règles d'erreurs ignorées de feuilles typées via TXLSXWorksheet.IgnoredErrors, couvrant chaque catégorie d'erreur standard, les références de cellules multi-zones, les copies de feuilles, les éditions de lignes et colonnes et les aller-retours ouverture/enregistrement
  • Création typée de gestionnaire de scénarios What-If via TXLSXWorksheet.Scenarios, avec scénarios actifs et affichés, plages de cellules variables, états verrouillé et masqué, commentaires utilisateur, valeurs d'entrée et formats de nombre, copies de feuilles, éditions structurelles et aller-retours ouverture/enregistrement sans réparation
  • Tables de données What-If typées via TXLSXWorksheet.AddDataTable et DataTables, couvrant les sémantiques d'entrée ligne, d'entrée colonne, à deux variables, d'entrée supprimée, d'ordre de calcul, de copie de feuille, d'édition structurelle et d'aller-retour SpreadsheetML
  • Connexions de données externes typées via TXLSXWorkbook.Connections et résultats de requêtes de feuilles via TXLSXWorksheet.QueryTables, avec politique d'actualisation, informations d'identification, réglages de base de données, web et texte, valeurs de paramètres typées exactes, liaisons de tables et de champs, éditions structurelles, copies de feuilles et aller-retours OOXML sûrs pour les extensions
  • Politique de calcul de classeur complète via CalcMode, RefMode, réglages d'itération, indicateurs de recalcul, contrôle de pleine précision et réglages de calcul concurrent, avec valeurs par défaut du schéma et persistance indépendante hors défaut, plus les mémos RecalcLookupCache et RecalcAggregateCache sur option qui permettent aux scans répétés XLOOKUP/XMATCH, VLOOKUP/HLOOKUP/MATCH et SUMIF/COUNTIF/AVERAGEIF ainsi qu'aux SUM/AVERAGE/MIN/MAX/COUNT inconditionnels sur une simple plage de réutiliser le premier résultat pendant une passe de recalcul, en ne s'activant que lorsque le graphe de dépendances est prouvé stable en références, si bien que les résultats ne diffèrent jamais
  • Politique de recalcul à l'enregistrement via RecalcBeforeSave (manuel, si sale, toujours), plus l'inspection d'état sale RecalcNeeded et la récupération de valeur RecalcCell mono-cellule après un recalcul complet
  • Placeholders de valeurs de rapport avec replis {{name;default}}, expressions dbvalue/dbcount/tonumber/ref sur un DataContext enregistré et une session de données isolée par exécution, cellules {{=formula(...)}} nues écrites comme formules vivantes, et directives structurelles {{#imgsize}}, {{#comment}}, {{#html}}, {{#sheetvisible}}, {{#deletesheet}}
  • Tables utilisateur typées paresseuses via des cellules {{#usertable(alias, logicalName, providerKey, name=expression)}} exactes, avec vérifications de syntaxe à la compilation, préflight statique sans resolver, paramètres typés dynamiques, application des providers enregistrés, diagnostics de conflits insensibles à la casse, limites de déclarations et chargement à la première utilisation via dbvalue ou dbcount ; TXLSReportGenerator.DataContext et TXLSReportTemplateChecker.DataContext transportent le même registre dans la génération et la validation
  • Façonnage des données de rapport via les combinateurs paresseux Filter, Sort stable multi-clés et Distinct ; les adaptateurs FromDataSet et FromObjects lient datasets ouverts et listes d'objets à propriétés publiées comme tables de rapport ; les bandes RunBidirectional donnent à chaque ligne maître ses propres colonnes pilotées par les enfants ; PreprocessAndRun laisse les modèles se modifier eux-mêmes contre les données avant le remplissage final
  • Options de collage de presse-papiers (valeurs seules, insertion de lignes/colonnes) sur les deux moteurs de classeurs, et diagnostics OnSkippedRecord sur le reader direct, le curseur de lignes et le forward reader, exposant les références de cellules mal formées sautées et les scans de feuilles BIFF abandonnés
  • Les aller-retours de protection à révisions partagées XLS classiques via SharedRevisionProtected et SharedRevisionPasswordHash, et les rapports gèrent le chiffrement de bout en bout : les modèles chiffrés s'ouvrent par mot de passe et RunToEncryptedFile émet un résultat chiffré en une étape
  • CopyRangeTo/CloneRangeTo inter-classeurs remappent les styles de cellules par valeur entre pools, et les CreatedDate, LastSavedDate, RevisionNumber et EditTimeMinutes du XLS classique font l'aller-retour via le flux de résumé OLE
  • Le rendu des graphiques consomme le GapWidth, l'Overlap et le groupement empilé / empilé en pourcentage du groupe de tracés de barres, si bien que les graphiques de barres et colonnes rendus correspondent aux sémantiques de disposition du modèle
  • Les graphiques font l'aller-retour de la mise en forme de l'espace graphique (coins arrondis, couleurs d'arrière-plan/bordure/zone de tracé) et des cinq commutateurs de protection de graphique, le moteur de rendu consommant ces couleurs ; le Smooth au niveau série et les couleurs de remplissage/bordure des marqueurs font l'aller-retour et se rendent en segments courbés ; les axes portent le mode de croisement et les styles de graduations, et AutoTitleDeleted supprime les titres dérivés
  • TXLSPDFWriter construit des PDF sans aucun tableur : taille de page explicite, flux multipage, rectangles/lignes/ellipses, texte mesuré, transformations, clipping et contrôle de l'état graphique
  • L'AutoFit propose un flux en deux phases MarkSheet/ApplyMarked avec mesures en attente inspectables, bornes de zone d'ajustement, IgnoreStrings, KeepHeightAutomatic, un plancher DefaultRowHeightVisual et un FitWorkbook en un appel
  • Les polices Unicode PDF prennent en charge les politiques d'incorporation automatique, sous-ensemble requis, programme complet et carte seule, les programmes OpenType CFF autonomes, le positionnement GPOS/kern partagé pour la mesure et le dessin, un callback OnFontEmbed de pré-résolution et un resolver de famille/style OnGetFontDirectories mis en cache récursivement ; la sortie PDF/A continue d'exiger des programmes de polices incorporés
  • Assistants de collections pour rechercher, supprimer et réordonner feuilles, tableaux, graphiques, images, plages fusionnées et liens externes par nom ou position
  • Création de graphique en un appel depuis une plage de données : AddChartFromRange et les raccourcis AddColumnChart / AddBarChart / AddLineChart / AddPieChart / AddAreaChart dérivent automatiquement séries et catégories d'un bloc de données, comme l'insertion de graphique par sélection d'Excel
  • Insertion et suppression de lignes et colonnes qui ajuste les formules, les colonnes de tableaux et leurs métadonnées de filtre ou de tri, invalide les références structurées de colonnes de tableaux supprimées chez tous les consommateurs de formules, partitionne les mises en forme conditionnelles de valeur et d'expression de cellules plus les validations de données quand les zones éditées exigent des ancres de formules différentes, garde intacts les domaines de mises en forme conditionnelles d'agrégats, et déplace automatiquement noms définis, liens hypertexte, séries de graphiques y compris tailles de bulles, et ancres d'images, graphiques, zones de texte et WordArt
  • Calcul de formules partageant l'évaluateur XLS classique avec registres de fonctions utilisateur globaux au processus et locaux au classeur, sémantique de surcharge locale au classeur, invocation de handlers parallèle-sûre sans verrou, opérateurs de tableau broadcast et erreurs par cellule, matrices LINEST / LOGEST multivariables complètes, prédictions TREND / GROWTH façonnées, couverture de fonctions de texte, date, jour ouvré, ingénierie/conversion de bases, opérations binaires, statistiques, agrégats et mathématiques, inspection ISFORMULA préservant les références sans recalcul de la cible, XMATCH / XLOOKUP binaires logarithmiques, détection d'arguments facultatifs ISOMITTED, conversion de tableaux ARRAYTOTEXT / VALUETOTEXT, calculs XIRR / XNPV validés, échéancier et taux de croissance d'investissement PDURATION / RRI, amortissement VDB à périodes fractionnaires, et callbacks de fonctions personnalisées OnUserFunction ; AnalyzeFormulaIssues fournit un préflight structuré pour les fonctions manquantes, les références externes et les composantes exactes de dépendances circulaires
  • Les références structurées sous forme de ligne courante (Table[@Col]) s'évaluent contre la propre ligne de la cellule de formule, en recalcul série comme parallèle
  • L'analyse de dépendances déploie les noms définis à portée et définis par formules imbriquées, y compris les références multi-zones, et n'utilise les gardes anti-cycles que lorsque la résolution statique des dépendances est impossible
  • Les formules partagées créées par Excel s'ouvrent avec chaque suiveur déployé dans son expression correcte relative à la cellule, dans les chemins classeur complet, direct reader en flux et curseur de lignes, tandis que les ancres de tableaux CSE et les suiveurs survivent aux éditions structurelles sûres de tableaux entiers, aux copies de plages complètes, à la duplication de feuilles et aux copies de feuilles inter-classeurs
  • Les tableaux dynamiques peuvent être créés avec TXLSXRange.SetDynamicArrayFormula, conservent plages de formules et métadonnées XLDAPR à travers les cycles ouverture/enregistrement, partagent un enregistrement de métadonnées dédupliqué entre racines, remappent cet enregistrement lors des copies inter-classeurs et le suppriment après effacement de la dernière racine
  • La composition de tableaux calculés inclut TRANSPOSE typé, multiplication de matrices calculée, déterminants et inversion, sélecteurs négatifs et vectoriels pour CHOOSECOLS / CHOOSEROWS, vecteurs de recherche et requêtes de tableaux calculés pour XLOOKUP / XMATCH / MATCH, et opérations d'empilement et de reformation avec limites d'étapes d'évaluation et de mémoire de tableaux
  • Création de contrôles de formulaire sur les feuilles XLSX (AddFormButton / AddFormCheckBox / AddFormRadioButton / AddFormComboBox / AddFormListBox) avec formes VML, parties ctrlProps et aller-retour verbatim des fichiers porteurs de contrôles
  • Évaluation XLSX vivante inter-classeurs via l'ExternalWorkspace préservant les chemins et la façade compatible RegisterExternalWorkbook : les cibles complètes de relations et les extensions restent distinctes, les alias ambigus échouent explicitement, la destruction de la cible révoque l'adaptateur vivant en sécurité, et les caches typés locaux au fichier restent le repli, sans accès implicite fichier ou réseau
  • Comparaison de classeurs via TXLSXWorkbookCompare, signalant les différences de feuilles, cellules, formules et fusions sous forme de liste structurée ou de rapport d'une ligne par différence
  • Génération de code depuis le classeur via TXLSCodeGen (dialectes Delphi et C++Builder) et validation d'import de règles de colonnes via TXLSImportCheck, avec annotation en police rouge et commentaires plus compactage keep-only-violations
  • Les enregistrements de feuilles XLS non reconnus font l'aller-retour verbatim — enregistrements spécifiques aux éditeurs ou de spécifications plus récentes capturés à la lecture et rejoués à l'enregistrement
  • Formes à géométrie prédéfinie via AddPresetShape — n'importe quel jeton OOXML ST_ShapeType voyage dans le dessin verbatim et fait l'aller-retour
  • Traitement de modèles : ApplyTemplate substitue les placeholders {{key}} sur toute la feuille et FillTemplateBand clone les blocs de modèles par enregistrement, avec traduction des formules, mises en forme conditionnelles dépendantes, validations, liens, commentaires, images, graphiques, clonage de fusions et conditionnelles #skip au niveau ligne ; CloneRangeTo expose le même chemin de copie conscient des dépendances avec charges sélectionnables ; TXLSCompiledReportTemplate compile une seule fois les emplacements de placeholders et fragments de texte pour des exécutions répétées à travers cellules, texte enrichi, commentaires, hyperliens, texte de dessins, en-têtes et pieds de page, noms de feuilles, noms définis et propriétés de document, sans rescanner le classeur, et prend en charge les diagnostics de préflight adressés, la validation stricte avant mutation et les feuilles de diagnostics ; TXLSCompiledReportRunner ajoute la progression au niveau des cibles, l'annulation, les comptages d'application déterministes, un état de complétion ou d'échec réutilisable, des événements appariés de cycle de vie classeur et feuille, des instantanés récupérables de problèmes, et une sortie atomique en flux, fichier ou fichier chiffré ; TXLSReportGenerator ajoute des événements de lecture de modèle, des sources classeur, fichier, flux et fichier chiffré, plus une modification sur place ou par clone atomique ; IXLSReportTable, IXLSReportCursor, les providers et resolvers paresseux par exécution et les index de relations à clés composés fournissent des sources de données virtuelles ou en mémoire réutilisables sans forcer le chargement des tables non référencées, tandis que TXLSReportTableFactory compose des vues top, projetées, comptées, minimales, d'agrégats, union, split et hash-joined sans copier des charges de lignes intermédiaires complètes ; des galeries Delphi et C++Builder exécutables démontrent le même contexte de données, runner compilé, feuille de diagnostics, LastResult et chemin RunToFile
  • Bandes de rapport structurelles nommées : TXLSCompiledReportBand résout un nom défini rectangulaire exact à la portée du classeur ou de la feuille et le déploie vers le bas, vers la droite ou sur les deux axes depuis des instantanés bornés de lignes et colonnes en un seul passage, en préservant types de valeurs, formules à références mixtes, fusions, règles, validations, hyperliens, commentaires, dessins et métadonnées explicites de disposition de lignes et colonnes, tout en rejetant les structures partielles non prises en charge avant mutation
  • Les copies répétées de plages et de bandes de rapport réutilisent les recherches par suffixe de noms définis à la portée considérée, tout en conservant la dénomination au premier disponible après suppression, renommage ou changement de portée
  • Les bandes de rapport de tableaux Excel déployables via TXLSCompiledTableReportBand utilisent un unique instantané de curseur borné pour déployer une seule ligne gabarit de données, tout en conservant en-têtes, totaux, plages du tableau et de l'AutoFilter, état de filtre et de tri, métadonnées de colonnes, formules calculées et de totaux, styles, références structurées et objets de feuille dépendants ; les résultats vides représentables retirent la ligne gabarit, tandis que les tables adossées à des requêtes et les dispositions dangereuses sont rejetées avant les écritures structurelles
  • Les bandes de rapport de plages et de tableaux Excel partagent ErrorMode, StrictDataAccess, RuntimeLimits et des diagnostics LastResult immuables ; WriteAndContinue stocke un échec de ligne explicitement récupérable en texte littéral avec sa ligne d'entrée et son adresse de sortie réelle, puis poursuit les cibles et lignes restantes, tandis que les échecs structurels et de ressources fatals annulent le déploiement
  • Scan de cellules et de lignes avec callbacks de valeur brute ou de texte d'affichage, recherche & remplacement de modèles, et écriture en masse
  • Gestion centrale des fichiers de travail (fichiers temporaires enregistrés balayés à la finalisation), contrôle de déchiffrement après écriture VerifyEncryptedSave sur option, et constantes de limites de grille par format avec un événement OnExportLimit sur l'exporteur de datasets
  • Assistants de validation de données avec listes déroulantes en un appel depuis un tableau de chaînes, modes IME typés partagés entre XLS classique et XLSX, formules de tableaux conservant des attributs de tableaux indépendants, extensions de mise en forme conditionnelle, export HTML configurable avec classes de style CSS centralisées, et enregistrement/chargement chiffrés AES — ECMA-376 Standard Encryption (AES-128) avec accélération AES-NI, plus la lecture du chiffrement Agile par défaut d'Excel (dérivation de clés SHA-512, AES-128/192/256)
  • Les exporteurs HTML classiques et XLSX utilisent des instantanés de géométrie xlsrgbHtml détenus par l'opération pour convertir les largeurs de caractères via les métriques de largeur de chiffres maximale de la police Normal en longueurs CSS fixes, réutilisent un cache borné unique par opération multi-feuilles, exposent l'instantané actif pour les diagnostics, et préservent les dimensions stockées des feuilles
  • Évaluation préparée des mises en forme conditionnelles XLSX avec superposition de priorités et StopIfTrue, formules relatives, statistiques partagées multi-zones, règles Top/Bottom et moyenne, valeurs dupliquées et uniques, périodes de dates relatives, styles différentiels conscients du thème, échelles de couleurs, barres de données directionnelles et toutes les familles de jeux d'icônes intégrées
  • Ouverture XLSX tolérante : les préfixes d'espaces de noms sont normalisés pendant l'analyse, si bien que feuilles, graphiques, dessins et propriétés de document liés à des espaces de noms non canoniques ou stricts ISO 29500 se chargent comme des fichiers ordinaires, et les feuilles dont les lignes ou cellules omettent les attributs de position déduisent chaque cellule d'après son prédécesseur dans l'ordre de scan
  • Sortie Open XML stricte via StrictOOXML : tout le package XLSX — feuilles, chaînes partagées, styles, thème, dessins, graphiques, commentaires, propriétés de document et parties préservées — est enregistré en conformité stricte ISO/IEC 29500 avec les vocabulaires purl.oclc.org, et les types de relations stricts se résolvent à l'ouverture comme les transitionnels
  • L'ouverture XLSX de classeur complet met en flux les entrées ZIP de feuilles directement dans des inflateurs et readers XML locaux aux workers, sans retenir de copies d'étape de XML de feuilles décompressé, et limite la mémoire d'entrée transitoire des feuilles aux workers d'analyse actifs
  • Reader direct en flux (TXLSDirectReader) qui scanne les .xlsx / .xlsm cellule par cellule avec événements par cellule et par feuille et une empreinte mémoire quasi constante pour les très grands classeurs, en signalant la valeur, le type, le texte de formule et l'index de style de chaque cellule avec détection de dates facultative, abandon précoce qui se propage dans l'entrée ZIP et la décompression, pushdown de plages de lignes et projection de colonnes en temps constant avant décodage des valeurs ; des événements de disposition sur option exposent dimensions de feuilles, tailles par défaut, étendues de colonnes, métadonnées de lignes, volets figés ou fractionnés et plages fusionnées avant les cellules dépendantes ; l'analyse parallèle bornée met en flux des inflateurs de feuilles locaux aux workers dans des files producteur-consommateur à budgets indépendants tout en préservant l'ordre des callbacks sur le thread appelant, la préservation des rich-strings expose segments formatés, plages phonétiques et propriétés phonétiques, et le magasin de chaînes partagées borné garde les petites tables en mémoire tout en migrant les grandes tables et charges enrichies vers un stockage temporaire indexé supprimé à la fermeture
  • Writer direct en flux (TXLSDirectWriter) qui produit des classeurs .xlsx cellule par cellule, en émettant chaque feuille directement dans le package à mesure que les lignes arrivent, si bien que les très gros fichiers sont générés avec une empreinte mémoire quasi constante, en couvrant chaînes partagées inline ou dédupliquées, rich-strings avec segments formatés et phonétiques, nombres, booléens, dates, formules, styles de cellules réutilisables au niveau du package avec handles clonés, polices/remplissages/bordures/formats de nombre dédupliqués, emphase de police, soulignement, contour et ombre, 19 motifs de remplissage, 14 styles de bordures sur cinq côtés, alignements horizontal et vertical, retour à la ligne, rétrécissement, indentation, rotation, préfixes de guillemet, protection verrouillé/masqué, formats de nombre intégrés et personnalisés, largeurs de colonnes, hauteurs de lignes, lignes et colonnes masquées, plages fusionnées, plages d'AutoFilter de feuilles et de tableaux avec filtres valeur, vide, groupe de dates, personnalisé, dynamique et top/bottom et états de tri, protection de feuille avec permissions fines, métadonnées de mots de passe héritées ou modernes et plages protégées éditables, protection de structure de classeur et de fenêtre, volets figés, couleurs d'onglets de feuilles, vues de droite à gauche, commutateurs d'affichage de vues de feuilles, marges de page, texte d'en-tête/pied, options d'impression, mise en page, réglages ajuster à la page, sauts de page manuels, liens hypertexte de feuilles sur plusieurs feuilles, noms définis de classeur et locaux aux feuilles, plages définies générées, zones d'impression, lignes ou colonnes de titre d'impression, validations de données avec invites et alertes d'erreur, mise en forme conditionnelle avec huit opérateurs de valeur de cellule, expressions, correspondance de texte, classement top/bottom, moyenne, prédicats dupliqué/unique et vide/erreur, barres de données, échelles à deux et trois couleurs, 17 familles de jeux d'icônes, styles différentiels de polices/remplissages, contrôle de priorités et stop-if-true, parties de tableaux à la Excel avec noms de colonnes, indicateurs de lignes d'en-tête/totaux, commentaires de tableaux, libellés et fonctions de colonnes de la ligne de totaux, formules de colonnes calculées, formules de ligne de totaux et options d'affichage du style de tableau, plus des canaux latéraux de la feuille courante pour commentaires classiques, sources d'images en flux, DrawingML ancré, graphiques typés adossés à des formules et ChartML fourni par l'appelant
  • Continuation de débordement sur option (AutoSplitRows) qui répartit les exports sur des feuilles <name>_2 quand une ligne au-delà de la limite de la feuille arrive, et FillTableCalculatedColumn pousse une formule de colonne de tableau dans chaque ligne de données, à la manière de la création Excel
  • Patching de feuilles sur place via BeginPatch : le writer en flux réécrit une feuille d'un package existant tandis que chaque partie intacte est copiée telle quelle avec ses octets compressés — remplacez une feuille de données ou ajoutez-en une nouvelle sans réécrire le modèle ; une initialisation et une finalisation qui échouent libèrent les handles de la source, la responsabilité des enregistrements de sources temporaires reste chez les appelants, et le writer peut être réutilisé après un échec d'initialisation
  • Objets caméra via AddCamera : images d'instantanés vivantes liées à une plage de cellules, suivant l'extension de dessin documentée de l'outil caméra ; la liaison fait l'aller-retour à travers enregistrement et réouverture
  • Pièces jointes PDF via AddAttachment — les fichiers voyagent dans l'export comme entrées /EmbeddedFiles avec un arbre de noms, et IXLSPDFAttachmentSource peut fournir chaque charge paresseusement une fois par enregistrement via un spool borné ; l'assemblage final met en flux les objets séquentiellement vers la destination, si bien que les charges des pièces jointes sont copiées en blocs fixes avec un objet de longueur indirecte et que la mémoire maximale reste plate
  • Sortie explicite PDF/A-1a, 1b, 2a, 2b, 3a et 3b via PDFAProfile, avec identification, gestion des couleurs, marquage, pièces jointes et règles de validation atomiques propres au profil ; UsePDFA reste un commutateur de compatibilité pour PDF/A-2b
  • L'export PDF s'exécute dans une disposition classique ou une disposition PDF 1.5 sur option avec flux d'objets compressés et flux de références croisées binaires (UseXRefStream) pour des fichiers plus petits
  • L'export PDF prend en charge des callbacks de progression réutilisables begin, page et end avec annulation et sans commit partiel du flux, plus des annotations de commentaires Unicode positionnées par cellule en option, pouvant coexister avec les pages de commentaires en fin
  • Les dégradés et la transparence PDF utilisent des shadings natifs axiaux ou radiaux avec fonctions multi-paliers cousues, masques alpha par palier, motifs de remplissage de cellules, ombres d'images, clipping au niveau de la page et caches de ressources au niveau du document ; les profils PDF/A sélectionnés appliquent leurs restrictions graphiques avant le commit de la sortie
  • Chaînes de repli de polices PDF sensibles aux styles via SetFontFallbackChain, AddFontFallback et ClearFontFallbackChains, qui sélectionnent les visages incorporés par famille source, niveau de style et couverture de glyphes, mettent en cache les visages chargés et les sélections, préservent les scalaires supplémentaires et les clusters de graphèmes inter-segments, gardent distinctes les séquences Unicode à glyphes partagés via des mappings CID, et rejettent atomiquement la sortie PDF/A plutôt que d'utiliser une police non incorporée
  • TXLSPageImageExporter construit la pagination une seule fois et exporte incrémentalement les pages XLS ou XLSX sélectionnées en PNG ou JPEG, avec DPI, échelle, qualité, progression, annulation et durée de vie des bitmaps par page configurables ; ExportRange écrit un rectangle de cellules serré et des événements avant ou après peinture exposent le canevas réel de la page via un contexte en lecture seule avec bornes en pixels, taille de page, résolution, échelle, numéros de page et feuille d'origine, en se déclenchant exactement une fois par image rendue, images TIFF multipage incluses
  • TXLSCellImageExporter mesure, rend et enregistre n'importe quel rectangle de cellules classique ou XLSX en une image compacte sans artefacts de pagination, avec résolution, échelle, format et qualité JPEG configurables, fonds PNG transparents ou colorés, commutateurs indépendants d'objets, quadrillage et bordures de cellules, budgets en pixels et octets validés avant allocation, et enregistrement fichier via un remplacement atomique dans le même dossier qui n'endommage jamais une cible existante en cas d'échec
  • L'export ODS traduit vers OpenFormula les formules scalaires prises en charge, les références A1 qualifiées, la validation booléenne personnalisée, les bornes à valeur de formule et les sources de listes ; les dialectes de formules de cellules non pris en charge conservent le repli de compatibilité, tandis que les définitions et références de validation non prises en charge sont omises ensemble
  • Les hauteurs de lignes ODS répétées et les styles de cellules vides utilisent des plages compactes ; la sortie ODS conserve hauteurs de lignes et queues stylées répétées, tandis que les éditions mono-ligne, l'effacement, la copie de feuilles, les décalages de lignes, le tiling et l'export XLSX préservent les hauteurs effectives
  • L'alimentation de lignes en mode pull (OnNeedRow + RunRows) pilote le writer en flux depuis un pipeline de données, une ligne à la fois
  • Les feuilles de droite à gauche se mettent en miroir dans l'export PDF et se basculent via dir="rtl" en HTML, complétant l'aller-retour de l'indicateur d'affichage
  • Le mode d'affichage zéro des feuilles masque le zéro numérique réel, y compris résultats de formules, valeurs monétaires et zéro de base de dates, à travers visionneuses et exports visuels, avant mise en forme des nombres ou mesure du texte ; le mode d'affichage des formules est prioritaire, les visuels de mise en forme conditionnelle et les liens hypertexte restent actifs, et les valeurs stockées, le texte formaté public, la sortie CSV et la sortie ODS conservent leurs contrats existants
  • Mode en flux à largeurs suivies sur option (TrackColumnWidths) qui met en scène la feuille en mémoire afin que le fichier fini porte l'indication <dimension> de plage utilisée et des largeurs de colonnes ajustées à la valeur la plus longue vue par colonne, en approximant l'auto-ajustement pour des données qui ne sont connues que pendant leur passage en flux
  • Éditions structurelles de lignes et colonnes XLSX sûres pour les références, qui mettent à jour formules, noms définis, règles, liens, dessins, réglages d'impression, plages protégées, ancres de commentaires classiques et threadés, sparklines, sources et vues typées de tableaux croisés dynamiques, et références d'extensions préservées reconnaissables, en une seule transaction sous garde, avec une API de participants ordonnée pour les métadonnées détenues par l'application
  • Arbre XML compact à accès aléatoire (TSimpleDomReader) qui se construit depuis le même pull reader en un seul passage, pour interroger métadonnées du classeur, relations, thèmes et autres parties du package par chemin de QName ou de nom local sensible à la casse
  • Évaluation pas à pas des formules via TXLSFormulaTracer avec transitions exactes de la pile d'opérandes, plus diagnostic interactif via TXLSFormulaDebugger exposant nœuds analysés, valeurs d'opérandes, ordre d'évaluation, dépendances de cellules et de plages, choix de branches paresseux, expressions sautées et origines des erreurs propagées
Version 2.384.120

Ensemble complet de capacités de classeur, de reporting et de rendu

La version actuelle étend les API prises en charge de classeur, de reporting et de rendu avec des chemins d'exécution bornés et des règles explicites de sécurité de format

Formats de classeur et calcul

  • Mappages XML éditables et liaisons de schéma mono-cellule via TXLSXXmlMaps et TXLSXXmlCellBindings, avec aller-retour des relations et validation avant enregistrement
  • État de classeur multi-fenêtres ordonné via TXLSXWorkbookViews, comprenant onglets actifs, géométrie, visibilité, indicateurs d'affichage, extensions et remappage sûr des index de feuilles
  • Sélections multi-zones et cellules actives par volet indépendantes pour XLS et XLSX, avec remappage structurel et rejet atomique des plages invalides
  • Jetons de formule sans perte détenus par l'appelant via TXLSFormulaTokenStream, ParseFormulaTokens, GetFormulaTokens, FormulaTokensToText et SetFormulaTokens
  • Le gel des formules XLS classiques classe les références BIFF compilées sans décompiler le texte de formule, ne convertit en OnlyExternal que les références confirmées vers des classeurs externes, préserve les formules incertaines et gèle les groupes de tableaux atomiquement avec les résultats littéraux de chaînes intacts
  • Les formules XLSX vers classeurs externes utilisent un lexer numérique conscient de la grammaire pour la conversion stricte, les diagnostics, le recalcul, la copie entre classeurs et les enregistrements générés, la compatibilité des noms de fichier n'étant normalisée que lorsqu'exactement une cible enregistrée correspond
  • TXLSXExternalLink expose les IDs de relations source, les emplacements à base 1 et les types de liens classeur, DDE, OLE ou non résolus, tandis que les changements de cible et de liste de feuilles invalident les liaisons externes compilées via une mise à jour de révision en temps constant
  • ConvertExternalDefinedNamesToRefErrors remplace atomiquement les définitions confirmées vers classeurs externes par des #REF! natifs en XLS classique et XLSX tout en préservant l'identité, la portée, la visibilité, les commentaires, les métadonnées de macro et de noms intégrés, les attributs XLSX inconnus, les formules de cellules ordinaires et les parties de liens externes
  • Tri stable de lignes ou de colonnes avec TXLSSortFormulaMode, clés horizontales, comparateurs personnalisés et choix entre préservation des dépendances logiques et déplacement physique des formules
  • Polices, formats de nombre, styles XF et formules BIFF2 à BIFF4 éditables, convertis dans les modèles de classeur et de calcul actuels au chargement
  • Une façade de callbacks unique TXLSForwardReader pour XLS, XLSX, CSV et TSV, avec projection au niveau des backends, bornes de lignes, état de présence de formule, suppression facultative du texte de formule, détection de format et annulation
  • Vues personnalisées typées pour volets, sélections, filtres, paramètres de page et sauts de page, les enregistrements BIFF inconnus conservant leurs charges utiles d'origine
  • Propriétés OLAP typées, sélecteurs de tables web, champs à largeur fixe et paramètres de connexion avec préservation du contenu d'extension
  • Diagnostics AnalyzeFormulaIssues pour les fonctions manquantes, les références à des classeurs externes et les composants exacts de dépendances circulaires
  • Registres de UDF globaux et locaux au classeur thread-safe, avec surcharge locale, recherche en O(1) moyen et invocation de handlers hors des verrous
  • XLSBidiVisualOrder pour le texte arabe ou hébreu mélangé au texte latin, aux chiffres, aux signes diacritiques et à la ponctuation en miroir, sans modifier le texte logique des cellules
  • Stratégies d'AutoFit des cellules fusionnées qui attribuent la croissance au premier ou au dernier membre, ou la répartissent sur toute l'étendue, pour XLS comme pour XLSX
  • Préservation typée des feuilles de macros Excel 4, plus les constats ScanMacroCommands en lecture seule avec adresses de feuille
  • Prise en charge du calcul de ISOMITTED, ARRAYTOTEXT, VALUETOTEXT, PDURATION et RRI avec un comportement de stockage et d'erreurs compatible Excel
  • Sous-totaux groupés de feuille de calcul via TXLSXWorksheet.Subtotal, avec formules insérées, total général configurable, mise en forme visible héritée et hiérarchie de plan
  • Inspection des styles effectifs sans matérialisation via GetCellVisibleFormat, plus validation au niveau des candidats et commit atomique via CheckDataValidation
  • Les ouvertures XLS classiques metadata-only et par feuilles sélectionnées utilisent les offsets BOUNDSHEET, un stockage borné pour les débordements du SST et un contrat de lecture directe partagé avec XLSX, CSV et TSV
  • Les tableaux dynamiques alimentent directement les agrégats scalaires en flux, les recherches répétées réutilisent des caches de plages incrémentaux typés, et les jetons de formule immuables partagent des objets sans état entre les compilations
  • La matérialisation native locale de tableaux croisés dynamiques prend en charge les grilles de rapports compactes, tabulaires et en plan, les étiquettes répétées, les positions de sous-totaux par défaut et les axes de mesures multiples avec cellules en cache et métadonnées filaires vérifiées contre l'ouverture Excel et le rafraîchissement explicite
  • Les calculs d'affichage natifs de tableaux croisés dynamiques incluent comparaisons d'éléments de base, totaux cumulés, pourcentages de lignes et de colonnes, pourcentages parents, pourcentages cumulés et rangs denses avec sortie native en cache et métadonnées de rafraîchissement
  • REGEXTEST, REGEXEXTRACT et REGEXREPLACE utilisent le backend UTF-16 fourni avec des budgets de formules partagés ; GROUPBY et PIVOTBY prennent en charge callbacks à portée, mesures multiples, filtres, tri, totaux hiérarchiques et pourcentages relatifs
  • L'effacement de plages et le collage de texte Unicode utilisent une transaction unique bornée d'annulation ou de rétablissement avec contrôles de protection, instantanés de contenu épars et métadonnées modernes de cellules restaurées
  • Les images PNG/JPEG locales typées dans les cellules et les formats Checkbox épars de cellules, lignes et colonnes conservent métadonnées d'accessibilité, précédence, styles, propriété du contenu et éditions structurelles à travers les aller-retours XLSX
  • Les lectures et écritures XLSB étendues conservent formules et caches pris en charge, noms, fusions, hyperliens, volets, tables et filtres avec préflight explicite des fonctionnalités non prises en charge
  • Les API de classeurs natives Linux x64 et macOS ARM64 chargent, modifient, calculent et enregistrent les fichiers XLSX, XLSB et ODS pris en charge avec de vrais services de plateforme
  • Les classeurs BIFF8 classiques natifs prennent en charge édition, calcul, grands conteneurs composés imbriqués, propriétés de document et sortie RC4 standard ou CryptoAPI 128 bits sous Linux x64 et macOS ARM64
  • La sortie native de tableaux croisés dynamiques prend en charge le groupement numérique, de dates et manuel ainsi que onze fonctions de sous-totaux personnalisées à travers les dispositions de rapports prises en charge
  • La comparaison de classeurs conserve les types de valeurs stricts et les grands entiers exacts, les tolérances numériques finies, les caches de formules facultatifs, les styles effectifs, la géométrie, le texte enrichi et les définitions bornées de fonctionnalités prises en charge, y compris l'état local des tableaux croisés dynamiques, Slicers et Timelines, tout en préservant le stockage épars et les résultats précédents en cas d'échec
  • ODS préserve le texte de notes ordinaires et les auteurs, les filtres de valeurs et personnalisés représentables et la protection équivalente sans mot de passe, avec rapports précis des pertes de conversion ; les enregistrements de flux annulés préservent la destination, et les enregistrements à position non nulle conservent des offsets ZIP valides
  • FORMULATEXT lit les expressions stockées sans évaluer leur cible, et GETPIVOTDATA interroge les agrégats visibles pris en charge depuis des caches locaux détachés bornés sur XLS, XLSX et évaluateurs isolés ; les valeurs de cache en ligne natives XLS et les références de filtres de rapport conservent leurs identités, tandis que les caches incomplets ou non pris en charge produisent des erreurs explicites
  • INDEX, SORT et UNIQUE acceptent des tableaux calculés et des constantes, si bien que filtrage, tri, déduplication et extraction de lignes ou colonnes se composent directement avec le redimensionnement automatique de débordement XLSX et le calcul CSE à plage fixe ; INDEX accepte des tableaux de sélecteurs de lignes, de colonnes et de zones avec diffusion consciente de l'orientation et erreurs typées par cellule, accepte la zone 1 pour une source calculée, et conserve l'identité de référence multi-zones scalaire prise en charge à travers noms définis, LET et CHOOSE scalaire ; voir la sélection de zone INDEX pour des exemples et les limites
  • Les styles nommés conservent les parties de format liées et les surcharges locales, et chaque style de tableau intégré light, medium et dark se résout dans le format effectif utilisé par les chemins d'édition et d'export
  • Une façade de dessin unifiée groupe ou dégroupe les objets DrawingML et réordonne images, graphiques, zones de texte, ancres préservées et groupes imbriqués sans perdre les relations
  • TXLSFormatSnapshot capture un format classique complet indépendamment de son classeur source, et IXLSRange.ApplyFormat l'applique à des cellules, lignes ou colonnes
  • Les classeurs classiques et XLSX exposent les mêmes API en flux SaveSemanticSnapshot et ComputeSemanticHash SHA-256 incrémental, avec les profils Content et SecurityComplete plus des options explicites d'état de visionneuse, de métadonnées volatiles et de cache de formules
  • Les nouvelles feuilles XLSX conservent des écritures en masse typées compatibles rangée par rangée dans un stockage RLE compact, répondent aux requêtes d'existence et de statistiques de stockage sans matérialisation, et ne se déploient qu'une fois en objets de cellules stables quand un accès au niveau objet l'exige
  • Les magasins de cellules et les collections de feuilles classiques et XLSX exposent des générations structurelles indépendantes, si bien que les lecteurs de longue durée détectent les changements de topologie sans traiter les éditions de valeurs, formules, formats, renommages ou activations comme une invalidation structurelle
  • Les handles de cellules gardent un état de style par défaut sans allocation, et les cellules vides de style identique partagent une charge utile à comptage de références avec isolation copy-on-write pour les éditions locales ultérieures et des octets évités mesurables dans les statistiques de stockage

Reporting compilé et composition de données

  • TXLSCompiledReportTemplate compile les placeholders une seule fois pour l'ensemble des cellules, textes enrichis, commentaires, commentaires threadés, hyperliens, dessins, graphiques, en-têtes, pieds de page, noms de feuilles, noms définis et propriétés de document
  • TXLSCompiledReportBand déploie les bandes lignes, colonnes et croisées de noms définis à partir d'instantanés de données bornés en un seul passage, en préservant formules, objets dépendants et métadonnées d'axes explicites
  • TXLSCompiledTableReportBand déploie les modèles de tableaux Excel à une ligne en conservant en-têtes, totaux, filtres, tris, formules, styles, références structurées, et traite sans risque les résultats à zéro ligne réelle
  • IXLSReportTable, IXLSReportCursor, IXLSReportRandomAccessTable et TXLSReportMemoryTable fournissent un contrat unique pour les sources virtuelles et en mémoire
  • TXLSReportRelationIndex construit une seule fois des compartiments typés exacts à clés composées pour une recherche maître-détail en O(1) moyen sans copier les charges utiles des lignes
  • IXLSReportTableProvider et TXLSReportDataContext enregistrent les tables explicites et paresseuses, tandis que BeginRun crée une IXLSReportDataSession isolée avec recherche de hachage insensible à la casse, cache négatif, mise en cache déterministe des erreurs de provider et détection immédiate de récursion sur un même alias ; les modèles compilés, runners, bandes de plages et bandes de tableaux Excel utilisent automatiquement une session par exécution logique, les deux passes de PreprocessAndRun partagent le même instantané, les exécutions concurrentes restent isolées, et chaque chemin de succès, d'annulation ou d'échec libère son instantané avant de retourner
  • TXLSReportDataRequest et IXLSReportDataResolver ajoutent des requêtes nommées ou utilisateur avec des paramètres typés ordonnés, des métadonnées de source, un contrôle d'exécution en lecture seule et des résultats explicites non géré, résolu, introuvable ou erreur de données ; les resolvers s'enregistrent par clé de provider insensible à la casse pour un dispatch en O(1), les providers historiques restent compatibles via un adaptateur, les tables explicites restent faisant autorité, et une exécution rejette les empreintes en conflit pour un même alias avant un second appel de resolver
  • TXLSReportDataLimits borne les alias en cache, les providers nommés et historiques, les schémas de tables, noms, paramètres, chaînes et messages d'erreur ; les coordonnées source mal formées, les caractères de contrôle, les noms de paramètres dupliqués, les conteneurs Variant non pris en charge, les combinaisons de résultats invalides, la récursion et l'annulation en cours de résolution échouent avant le commit de la cible, l'annulation retirant l'entrée de cache inachevée pour une relance propre
  • TXLSReportTableFactory fournit des curseurs paresseux top, projection, union et split, plus nombre de lignes, minimum, agrégats et hash joins préservant les doublons
  • TXLSReportQueryProvider n'expose aux modèles que les définitions de requêtes en lecture seule enregistrées et transmet paramètres typés et timeouts bornés à un exécuteur hôte
  • TXLSCompiledSheetReportBand et TXLSCompiledOverflowReportBand créent, depuis un curseur direct, des feuilles par enregistrement conscientes des dépendances et des feuilles de continuation bornées
  • TXLSReportIncludeLibrary résout les includes nommés récursifs, signale les cycles de façon déterministe et se fige en bibliothèque réutilisable immuable
  • Conditions, lookups, expressions régulières et formules dynamiques des rapports compilés réutilisent les nœuds d'expression analysés et les index de colonnes résolus
  • TXLSReportDynamicFormat et TXLSReportFormatEvent appliquent, à la granularité de la cible compilée, des formats de nombre, hauteurs de ligne et largeurs de colonne tenant compte de l'enregistrement
  • IXLSReportImageDataProviderV2 et TXLSReportImageBinder résolvent des cibles d'images typées depuis des octets bornés ou des flux détenus, avec un contexte stable de feuille, bande, table, ligne logique, ligne de curseur, ligne courante en lecture seule, ancre, transformation, annulation et limite de taille ; runners, générateurs, bandes de plages et bandes de tableaux Excel lient chaque cible directement sans scanner les cellules générées de la feuille
  • Les images de rapports V2 déduisent la taille physique et le DPI d'en-têtes PNG, JPEG, GIF, BMP, EMF ou WMF bornés, prennent en charge les ajustements Natural, Contain centré, Cover rogné et Stretch, rejettent la géométrie raster dangereuse avant toute mutation et préservent les décalages relatifs à l'ancre à travers les aller-retours XLSX et ODS
  • IXLSXImageBlob et TXLSXImageBlob permettent aux images répétées de partager un raster et une charge utile SVG immuables avec un condensé SHA-256 calculé une fois et une clé de cache facultative ; XLSX et ODS réutilisent des charges utiles média distinctes entre les feuilles et restaurent les charges partagées à la réouverture
  • La reliaison des graphiques consciente des dépendances traduit séries, formules, noms et ancres quand les bandes de plages et de feuilles se déploient
  • TXLSCompiledReportRunner signale les phases begin, target, saving et end, prend en charge l'annulation, la sortie flux et fichier atomique, les comptages exacts d'éléments appliqués et une exécution réutilisable à travers des sessions de données isolées ; ErrorMode choisit entre un comportement d'arrêt compatible et la poursuite du traitement des échecs de données, provider, division par zéro et expression régulière invalide explicitement typés, StrictDataAccess expose les données manquantes au lieu des blancs historiques ou des comptages sentinelles, et les instantanés immuables LastResult conservent les problèmes d'exécution ordonnés et l'état terminal à travers la réutilisation du runner
  • La sortie de rapport flux, fichier et fichier chiffré utilise une seule transaction par étapes ; les échecs fatals, annulations, sérialisations, écritures de flux partielles et remplacements de fichier préservent la destination antérieure complète, la sortie non chiffrée réussie conserve le format du classeur source et les instantanés de rollback de grands flux débordent vers un stockage temporaire géré
  • La sortie de rapport saute les instantanés de sauvegarde pour les flux de destination vides, tout en préservant le rollback du contenu et de la position de la destination si la sortie échoue
  • Les cibles compilées s'évaluent avant la mise en forme dynamique, puis committent atomiquement contenu, formats de nombre, hauteurs de lignes et largeurs de colonnes avec rollback exact ; les diagnostics de cellules récupérables effacent les formules, conservent le style de base restant et partagent des dérivés mutualisés de police rouge et de remplissage jaune pour des polices de base égales, tandis que les cibles hors cellules sûres préservent leur valeur d'origine et que les cibles structurelles restent fail-fast
  • TXLSReportRuntimeLimits borne le nombre de problèmes conservés, la longueur des messages assainis et la mémoire des problèmes avant toute mutation de cible ; les messages sont mono-ligne et masquent les identifiants courants, et RuntimeDiagnosticsSheetName écrit facultativement une feuille de diagnostics structurée qui fait l'aller-retour avec le classeur généré
  • TXLSReportGenerator possède le cycle de vie complet de lecture et de génération pour les modèles classeur, fichier, flux et fichier chiffré, avec événements appariés, contexte de feuille stable, annulation sûre, isolation de sortie par clone atomique et le même contrat d'erreurs récupérables et de résultat immuable que le runner compilé
  • CloneRangeTo clone les cellules sélectionnées et les dépendances porteuses d'identité avec traduction des références mixtes, contrôle préalable des chevauchements et pavage linéaire répété à source fixe ; les cibles conditionnelles et de validation sur axes entiers suivent les éditions structurelles et les clones contenant entièrement chaque cible, tandis que les copies de cellules de lignes, colonnes et feuilles entières conservent le stockage épars et des instantanés sûrs des sources qui se chevauchent ; les superpositions de styles virtuels en intersection sont aussi copiées et remappées sans étendre les coordonnées vides, et la mise en forme en superposition de la destination hors du rectangle copié reste intacte
  • TXLSReportPaginationPlanner fournit pieds de page fixes, groupes insécables, fractionnement de lignes, fusion des étendues similaires et colonnes de rapport équilibrées
  • L'analyse des rapports compilés, l'exécution stricte et WriteDiagnostics signalent les placeholders mal formés et les valeurs manquantes avec les types de cibles et les adresses exactes
  • TXLSReportTemplateChecker et TXLSReportTemplateMigrator réutilisent la sémantique du compilateur pour valider les modèles et convertir les formes de placeholders historiques prises en charge

Sorties accessibles, vectorielles, image et web

  • TXLSPDFTagMode et DocumentLanguage génèrent des arbres de structure PDF automatiques avec tables, lignes, cellules d'en-tête et de données sémantiques, Figures d'images XLSX informatives avec texte alternatif Unicode, identifiants denses de contenu marqué par page, étendues de cellules fusionnées, arbres parents exacts et isolation en artefacts des images décoratives et des autres dessins non sémantiques
  • TXLSPDFSignature prend en charge les champs de signature visibles ou invisibles, les apparences PNG contained, covered ou stretched, les données CMS fournies par l'hôte, les callbacks de condensé, les plages d'octets patchées et les politiques de certification DocMDP explicites pour aucune modification, remplissage et signature de formulaire, ou remplissage, signature et annotations, sans stockage de clés privées
  • TXLSPDFAProfile sélectionne PDF/A-1a, 1b, 2a, 2b, 3a ou 3b avec validation du profil avant le commit de sortie ; les fichiers associés PDF/A-3 portent un nom Unicode, un type MIME, une description, une taille en octets, une date de modification et une relation Source, Data, Alternative, Supplement ou Unspecified via la surcharge détaillée de AddAttachment
  • La progression réutilisable begin, page et end du PDF plus l'annulation évitent les flux de destination partiels
  • Les chaînes de repli de polices PDF sensibles aux styles mettent en cache la couverture de glyphes et les visages intégrés tout en préservant les caractères supplémentaires, les clusters de graphèmes et les mappings d'extraction
  • Le façonnage contextuel du texte complexe applique ligatures, positionnement des signes diacritiques, jointure arabe et mappings de clusters source avant la sortie des glyphes
  • Les dégradés PDF axiaux et radiaux multi-paliers natifs, les masques alpha par palier, les motifs de remplissage de cellules, le clipping et les ombres d'images réutilisent les ressources graphiques en cache
  • Les commentaires de cellules peuvent devenir des annotations de texte Unicode positionnées en PDF, la sortie commentaires-en-fin restant disponible
  • TXLSSvgExport effectue le rendu de plages, feuilles de calcul, classeurs, pages et objets nommés avec texte vectoriel, liens sûrs sur option, graphiques, formes et images ; les callbacks de page retournent un SVG complet à la fois, les préfixes d'ID déterministes isolent les documents incorporés, et le moteur de rendu de page partagé peint remplissages de cellules Excel, bordures réduites, polices et alignements par cellule, rétrécissement pour adapter et débordement chez la cellule voisine
  • TXLSPageImageExporter réutilise une session de pagination tout en produisant incrémentalement les pages PNG ou JPEG sélectionnées, ou écrit les pages sélectionnées atomiquement en un TIFF multipage compressé LZW
  • TXLSGraphicsBackend et la géométrie de pagination partagée alignent aperçu, impression, PDF, SVG, image, HTML et placement d'objets, les sérialiseurs conservant l'encodage propre à chaque format
  • Le décodeur EMF et WMF borné valide les enveloppes d'enregistrements et rejette les enregistrements escape avant de rejouer son sous-ensemble sûr via la géométrie Canvas et SVG partagée : piles d'états DC, transformations window, viewport et world, tables d'objets stylo, brosse et stylo étendu avec objets stock, rectangles, ellipses, chaînes de lignes, polygones, courbes de Bézier, crochets de chemin avec passes de remplissage, de trait et combinées, rectangles arrondis, arcs, cordes, secteurs et arcs angulaires, remplissages et cadres de régions, segments de texte bornés avec polices et alignement, et images stretch-DIB réencodées en PNG ; le clipping et les enregistrements privés restent hors liste blanche et conduisent à un échec ferme vers le repli raster borné
  • Les exporteurs HTML classiques et XLSX fournissent une vue de feuille de calcul explicite avec en-têtes de lignes et de colonnes sémantiques et hot tracking typé en CSS pur ; les liens externes partagent un assainisseur d'URI unique qui rejette les cibles script, data, blob, file, UNC et caractères de contrôle
  • Les graphiques à axes de dates XLSX utilisent les numéros de série du classeur comme coordonnées continues, préservent l'emplacement de compatibilité du 29 février 1900, honorent le système de dates 1904 et avancent les graduations par jours, mois ou années civiles réels à travers les rendus pagination, SVG, PDF, image, aperçu, impression, visionneuse et HTML partagés ; les unités omises sont déduites une fois pour toutes les séries visibles, la densité automatique utilise l'étendue visible, la largeur d'axe, la police des étiquettes mesurée, le format de nombre et la rotation, et les quadrillages principal et secondaire configurés réutilisent les mêmes collections de graduations bornées
  • Les modèles d'axes de dates XLSX préservent la présence indépendante des unités de calendrier base, principale et secondaire plus l'indicateur de catégories automatiques de l'axe de dates, si bien que les éléments ChartML omis restent omis tandis que les unités de jours explicites et les booléens false font l'aller-retour ; les champs d'extension typés d'axe de dates classiques conservent chaque valeur brute et chaque indicateur, les valeurs actives pouvant être mappées dans le modèle d'axe XLSX
  • Les axes de catégories multi-niveaux préservent les caches épars feuille-d'abord et les plages bidimensionnelles vivantes, héritent des étiquettes omises tout en traitant les étiquettes vides explicites comme des frontières, fusionnent les étiquettes égales uniquement à l'intérieur de l'étendue de leur parent, honorent l'ordre inversé et de droite à gauche plus les catégories masquées, et exposent NoMultiLevelLabels pour une sortie à un seul niveau
  • Les étiquettes de données de graphiques sourcées depuis les cellules préservent formules indépendantes et caches indexés par série, rafraîchissent le texte d'affichage local de la feuille une fois par génération du classeur, conservent les caches externes sans accès implicite, traduisent les formules à travers copies de feuilles et déploiement de rapports, et honorent la visibilité partagée et par point à travers les rendus pagination, SVG, PDF, image, aperçu, impression, visionneuse et HTML
  • Les classeurs XLS classiques et XLSX partagent une politique d'affichage d'objets à trois états sans perte ; les objets masqués sont exclus avant l'expansion de plages et le travail média, la visionneuse effectue le rendu de placeholders nommés légers, et les exporteurs PDF, SVG, bitmap, impression et HTML peuvent opter pour la sortie en placeholders tout en conservant la sortie des objets complets par défaut
  • Les dispositions manuelles de graphiques préservent la présence indépendante des champs et les jetons source invalides, résolvent les modes factor et edge avec un placement borné préservant les tailles, distinguent les cibles de tracé internes et externes, partagent la géométrie du titre, de la légende, de la zone de tracé et des titres d'axes à travers les sorties pagination, SVG, PDF, image, aperçu, impression, visionneuse et HTML, et convertissent les positions ODF prises en charge via des distances absolues de graphique
  • Les axes de dates XLSX préservent les formats de nombre des étiquettes et l'état de liaison source, appliquent le style de texte d'axe et la rotation horaire, honorent la direction inversée et conservent un espacement continu pour les dates dupliquées et éparses à travers les rendus pagination, SVG, PDF, image, aperçu, impression, visionneuse et HTML
  • Le mode affichage des formules résout le même texte final conscient des cellules protégées, le même alignement et la même largeur de disposition effective bornée du double à travers les chemins visionneuse de classeur, aperçu, impression, image, EMF, SVG, PDF, HTML classique et HTML XLSX, sans changer les valeurs stockées, les caches de formules ni les largeurs de colonnes
  • Les arcs de Bézier cubiques adaptatifs pilotés par la flatness partagent un contrat de précision unique à travers les sorties PDF, SVG et image, en n'allouant des segments supplémentaires que lorsque l'échelle ou l'excentricité l'exige
  • Les outlines PDF gèrent les signets Unicode imbriqués, les couleurs, le texte gras ou italique et les descendants dépliés ou repliés, avec callbacks de page pour les arrière-plans et superpositions
  • Les styles de tableaux nommés résolus et intégrés transitent par la mise en forme partagée HTML, PDF, image, aperçu et visionneuse sans matérialiser de cellules vides
  • TXLSSvgExport.SaveObjectAsSVG effectue le rendu d'un graphique, d'une image ou d'une forme nommée à ses limites d'objet exactes sans rogner une page entière
  • L'export HTML émet graphiques et formes en SVG inline et préserve images SVG, ancres de dessin, liens et effets pris en charge sans rastérisation de la feuille entière
  • TXLSXHtmlExportSession analyse une seule fois les styles partagés puis exporte les feuilles de calcul incrémentalement avec progression, annulation et réinitialisation
  • TXLSImageRenderEffects applique recadrage, luminosité, contraste, gamma, rotation, opacité et ombre de façon cohérente à travers les backends graphiques
  • Formes prédéfinies, ajustements, callouts, organigrammes, zones de texte et WordArt utilisent une géométrie vectorielle partagée à travers les formats de sortie
  • Le rendu de graphiques avancé couvre barres d'erreur, courbes de tendance, axes de dates, espacement numérique, étiquettes sourcées depuis les cellules avec ordre de composants personnalisé-d'abord, et barres financières haut-bas et hausse-baisse
  • Les étiquettes de graphiques denses et de secteurs reçoivent un ajustement de collision déterministe et un routage de lignes de rappel avant la sortie vectorielle finale

Fonctionnalités XLSX prêtes pour le code applicatif

L'API XLSX couvre désormais la génération pratique de classeurs, la sortie de rapports et les scénarios de mutation de classeurs, au-delà de la simple écriture de cellules

  • Structure de la feuille de calcul Cellules, calcul de formules, plages entières et plages de fusion transversale avec recherche/suppression directe des plages fusionnées, tailles de lignes et colonnes avec AutoFit borné, plans, lignes et colonnes masquées, volets figés, état de feuille active, feuilles masquées et très masquées
  • Styles et présentation Polices, remplissages, bordures, formats de nombre, alignement, texte enrichi, couleurs du thème, couleurs indexées, teinte et nuance, bordures diagonales et pools de styles réutilisables
  • Objets Excel Liens hypertexte et commentaires avec recherche par cellule plus assistants de suppression de plages, images et zones de texte de dessin autonomes avec recherche d'ancres et assistants de suppression de plages, mises en forme conditionnelles et validations de données avec recherche et suppression conscientes des plages, tableaux à la Excel avec recherche et suppression par nom, critères d'AutoFilter avec recherche et suppression directes par colonne, objets graphiques avec recherche et suppression par titre, feuilles de graphiques, noms définis avec recherche et suppression par portée, préservation des projets VBA avec requêtes HasVbaProject / VbaProjectDefined plus inspection et édition du code source des modules existants, et liens de classeurs externes avec recherche et suppression de cibles
  • Prise en charge des pages et métadonnées Modes de vue de feuille, zones d'impression, lignes et colonnes de titre, options d'impression du quadrillage et des en-têtes, sauts de page manuels avec recherche par index et assistants de suppression de plages, classeurs Date1904, propriétés de document, métadonnées d'application, et enregistrement/ouverture par flux

Formats de sortie à partir des mêmes données de classeur

HotXLS ne se limite pas aux fichiers de classeurs binaires. Les API actuelles exposent des chemins d'export directs pour les cibles courantes d'intégration et de reporting

XLS Classeurs Excel 97-2003 classiques en lecture, écriture, modification, curseur de cellules chargées à état constant avec instantanés détenus, blancs stylés indépendamment en option et validation de topologie fail-fast, découverte rapide des noms de feuilles depuis fichiers ou flux, recherche de feuilles par nom, assistants de volets, onglet actif du classeur, métadonnées saved-by, assistants de chargement/enregistrement/effacement des charges VBA plus inspection et édition du code source des modules existants, et contrôles de géométrie/état de fenêtre, fidélité des indicateurs Window2 d'onglet, barre de défilement, groupement de dates d'AutoFilter, vue de feuille, couleur du quadrillage et volets figés, contrôles de style de plan, permissions de protection de feuille, indicateurs de mise en page avec préservation bornée octet par octet des charges du pilote d'imprimante BIFF, accès aux charges publiques isolé par copie et conversion vers XLSX par priorité de champs typés, tri de plages multi-clés, styles de cellules intégrés, propriétés de document et workflows d'export
XLSX Génération de classeurs OOXML, calcul de formules avec couverture de fonctions étendue et références A1 sur toute la grille de feuille 1,048,576 × 16,384, avec OnUserFunction/OnUserFunctionEx, curseur de cellules chargées à état constant sur blocs épars matérialisés ou stockage packé avec instantanés détenus, blancs stylés indépendamment en option et validation fail-fast du cycle de vie, scan de cellules chargées et écriture par callback, limites d'AutoFit bornées pour largeurs de colonnes et hauteurs de lignes de rapports, conversion déterministe éparse XLSX vers BIFF8 via SaveXLSXWorkbookAsXLS avec préservation des couleurs indexées verrouillées, quantification de palette OKLab pondérée et réglages d'imprimante typés préflightés, préservation octet par octet de la partie de réglages d'imprimante des feuilles avec accès aux charges publiques isolé par copie, sémantique d'effacement exacte et diagnostics de relations pendantes, enregistrement/chargement chiffrés AES compatibles Excel (ECMA-376 Standard Encryption) avec accélération AES-NI et repli logiciel, préservation des projets VBA avec requêtes HasVbaProject / VbaProjectDefined plus inspection et édition du code source des modules existants, recherche/remplacement de texte de modèles, export HTML configurable de classeurs/plages, recherche/suppression directes de critères d'AutoFilter et évaluation d'aperçu, recherche/suppression directes d'ancres d'images incorporées, recherche/suppression de mises en forme conditionnelles et validations de données conscientes des plages, et aller-retour via la façade dédiée lxHandleX
XLSB Valeurs et styles de base validés via la façade XLSX, avec nombres typés, valeurs booléennes, texte Unicode, erreurs ordinaires, blancs stylés, visibilité de feuilles, vues ordinaires, dimensions de lignes et colonnes, marges de page, compression ZIP et horodatages déterministes ; la mise en scène complète du package et les contrôles obligatoires de fonctionnalités rejettent formules, noms, objets de fonctionnalités et réglages de calcul non par défaut avant le commit de destination
ODS Import OpenDocument Spreadsheet avec données styles.xml, dimensions lignes/colonnes, styles de cellules hérités, conversion de formules basique, protection de feuille, plages nommées, valeurs scalaires en cache non typées, secondes fractionnaires de dates et durées temporelles négatives. Export complet via SaveAsODS écrivant valeurs de cellules typées, formules, texte enrichi, plages fusionnées, hyperliens, images, graphiques, mises en forme conditionnelles, validations de données, volets figés, zones d'impression, groupes de plan et contrôle facultatif TODSExportOptions dans un package ODF valide
CSV / TSV Import de texte délimité via OpenCSV avec détection automatique du séparateur, détection d'encodage BOM, quoting RFC 4180, inférence facultative des types de valeurs, directives d'import par colonne et découpage à largeur fixe, plus assistants d'export de classeurs, feuilles et plages avec surcharges flux et fichier et sortie à largeur fixe complétée par des espaces
HTML / RTF / PDF Exports orientés tables pour rapports, aperçus, corps d'e-mails et passation de documents, avec fragments de plages sélectionnées, titres HTML configurables, attributs de disposition de tables, ancres d'hyperliens, tooltips de commentaires, styles d'alignement vertical, styles de segments de texte enrichi, styles différentiels conditionnels et formats de nombre, échelles de couleurs, barres de données directionnelles, glyphes de familles d'icônes et sortie de table minimale. TXLSHTMLImport importe une table de premier niveau sélectionnée ou toutes les tables à une cellule cible en base 1 avec un séparateur décimal explicite, en préservant les surcharges historiques toutes-tables. SaveWorkbookAsHTML publie toutes les feuilles XLSX visibles dans un document navigable avec ancres stables par feuille et noms de feuilles échappés. Le RTF s'importe aussi en retour via OpenRTF, en mappant cellules de tables ou listes de paragraphes vers A1 par défaut ou vers une ligne et colonne cibles explicites en base 1 via les surcharges étendues. Le SaveAsPDF de classeur combine toutes les feuilles visibles en un document, rend remplissages unis et conditionnels, échelles de couleurs, barres de données, icônes conditionnelles, couleurs, tailles, gras, italique et soulignement des polices, alignement, bordures explicites et quadrillage facultatif, et respecte zones d'impression, format de papier ou dimensions de papier personnalisées précises au point, orientation, marges, zoom, réglages ajuster à la largeur, largeurs de colonnes, hauteurs de lignes, sauts de page manuels, lignes et colonnes de titre répétées, et en-têtes/pieds de page gauche, centre ou droite — y compris les codes de champ &F de nom de fichier et &Z de chemin et la suppression facultative des bandes d'en-tête ou de pied — tout en paginant les plages larges et hautes sur les deux axes ; CalculatePageCount rapporte le nombre logique complet de pages sans construire d'objets PDF, et FirstPage et LastPage en base 1 sélectionnent une plage de sortie en préservant les champs de nombre total de pages. TXLSPaginationModel expose ces décisions sous forme de pages logiques XLS et XLSX réutilisables pour l'aperçu avant impression VCL, l'export PDF, des canevas personnalisés et la sortie EMF, avec titres répétés, ordre over-then-down ou down-then-over, mise à l'échelle de 10 % à 400 % et placements de dessins
PDF / SVG / PNG portables Le rendu portable natif transfère des instantanés détachés scalaires et de scène, préserve l'ordre de dessin et le clipping, et utilise un rendu Cairo borné avec fichiers de polices explicites ; les plans d'impression de classeur appliquent zones d'impression, titres, mise en page, sauts et mise à l'échelle sans recalcul ni mutation de la source

Pourquoi l'utiliser

HotXLS garde la génération de feuilles de calcul dans votre processus Delphi ou C++Builder. Cela le rend adapté aux utilitaires de bureau, outils de traitement par lots, services et installateurs, partout où l'automatisation Office est fragile ou indisponible

Couverture RAD Studio

Le package cible Delphi et C++Builder de XE5 à RAD Studio 13.1 Florence, avec projets de package versionnés et dossiers de sortie par version

Free Pascal 3.2.2 avec Lazarus/LCL est également pris en charge sous Windows Win32 et Win64 via le package d'exécution Lib/FPC/HotXLSLaz.lpk, avec API de classeurs XLS/XLSX, streaming direct, formules et composants d'export TDataToXLS et TGridToXLS pour datasets LCL et TDBGrid

Exécutez build-FPC-Lib.cmd Win64 ou build-FPC-Lib.cmd Win32 pour compiler le package, puis Tests/Lazarus/Run-HotXLSLazarusSmoke.cmd Win64 ou son équivalent Win32 pour vérifier les aller-retours de classeurs et de compression ; définissez LAZARUS_DIR pour une installation personnalisée

Les applications LCL Windows doivent inclure l'unité LCL Interfaces avant les unités HotXLS et ajouter Lib et Lib/FPC à leurs chemins de recherche d'unités, plus Lib au chemin de recherche d'includes ; les formulaires de démo VCL, la visionneuse de classeurs VCL et l'adaptateur de grille DevExpress restent des composants Delphi/C++Builder

Les applications natives Linux x64 et macOS ARM64 chargent, modifient, calculent et enregistrent les modèles XLS classique, XLSX, XLSB et ODS pris en charge ; le texte BIFF5 classique utilise des pages de code explicitement déclarées, tandis que le Unicode compressé BIFF8 conserve les unités de code UTF-16 exactes et le calcul et la recherche natifs préservent la comparaison de casse Unicode

Le texte de graphiques historiques pris en charge est transcodé quand sa page de code change, et la migration de texte octet non représentable ou non prise en charge est rejetée avant de changer la sortie de l'appelant ; les lectures ZIP répétées libèrent leurs métadonnées d'en-tête précédentes, et la recherche de styles nommés inclut la première entrée stockée

Voir Prise en charge de Free Pascal et Lazarus pour la configuration applicative, les contrats d'encodage historiques et les détails de compatibilité des expressions régulières

Le sous-système de sortie portable rend nativement PDF, SVG et PNG sous Linux et macOS avec FPC, Cairo, FreeType, HarfBuzz et FriBidi ; il consomme des instantanés immuables du noyau de classeurs natif pris en charge, avec géométrie de polices explicite et budgets de ressources

Facile à distribuer

Code source, packages, scripts de build, démos, documentation HTML locale et intégration à l'installateur sont inclus, si bien que les équipes peuvent construire, tester et livrer sans dépendre d'un service web

Points de départ

Utilisez d'abord ces fichiers locaux pour évaluer la bibliothèque ou l'intégrer à un projet