AstroQuest

Moteur tableur

Lit xlsx, xls, ods et csv en colonnes typées, formules des .xls comprises, avec zéro écart de valeur. Le moteur tableur lit les classeurs xlsx, xls, ods et csv directement en colonnes typées, sans reconstruire des objets cellule par cellule. Il lit aussi les anciens .xls avec leurs formules et leurs styles, et il écrit des xlsx et ods stylés, ce que SheetJS ignorait.

Chiffres clés

  • ×18,1 plus rapide, au mieux : sur 24 classeurs réels, machine chargée : ordre de grandeur
  • 0 écart de valeur : sur 24 classeurs réels comparés à l’ancienne lecture
  • 479 fonctions Excel lues dans les .xls : formules identiques à ce qu’Excel relit, sur les fichiers de banc

Avant et maintenant

  • Classeur de 5,4 Mo (304 000 cellules) : 5,2 s avant, 700 ms maintenant (7,4 fois mieux). lecture, SheetJS contre moteur maison.
  • Fichier .xls de 5 Mo avec 32 000 formules : 1,9 s avant, 167 ms maintenant (11,4 fois mieux). bornes prudentes : 1,9 à 3 s avant, 137 à 167 ms maintenant (×15 à ×20).

Ce que ce moteur remplace

Moteur tableur remplace SheetJS dans l’application.

Comment ça marche

  • Lire le répertoire. Le fichier est parcouru par son répertoire central ; seules les feuilles demandées sont décompressées.
  • Décoder en colonnes. Nombres, textes, dates et booléens sortent déjà typés, prêts pour le moteur de calcul.
  • Retrouver les formules. Dans un ancien .xls, les formules sont relues et traduites en formules lisibles, avec les polices, couleurs, bordures et formats de nombre.
  • Rendre compte des erreurs. Un fichier abîmé produit un rapport précis au lieu d’un échec silencieux.

Ce qui n’est pas parfait

  • SheetJS n’est plus utilisé par l’application ; il ne reste que dans les bancs d’essai, comme référence indépendante.
  • La fidélité des formules des .xls est vérifiée sur les fichiers de banc ; d’autres classeurs peuvent révéler des cas non couverts.
  • Lecture parallèle par feuille non faite ; mémoire non mesurée.
  • Les rapports de vitesse (×14,7 et ×18,1 sur deux petits classeurs) sont des ordres de grandeur pris sur une machine chargée.

Source des chiffres

Document du dépôt AstroQuest : docs/reference/bilan-moteurs-natifs-2026-10-05.md. Mesures internes, en développement, sur fichiers réels : des ordres de grandeur, pas des garanties.

Questions fréquentes

Que fait la technologie « Moteur tableur » d’AstroQuest ?

Le moteur tableur lit les classeurs xlsx, xls, ods et csv directement en colonnes typées, sans reconstruire des objets cellule par cellule. Il lit aussi les anciens .xls avec leurs formules et leurs styles, et il écrit des xlsx et ods stylés, ce que SheetJS ignorait.

Quelles sont les limites de « Moteur tableur » ?

SheetJS n’est plus utilisé par l’application ; il ne reste que dans les bancs d’essai, comme référence indépendante. La fidélité des formules des .xls est vérifiée sur les fichiers de banc ; d’autres classeurs peuvent révéler des cas non couverts. Lecture parallèle par feuille non faite ; mémoire non mesurée. Les rapports de vitesse (×14,7 et ×18,1 sur deux petits classeurs) sont des ordres de grandeur pris sur une machine chargée.