Le moteur de formules Rust d’Univer : des millions de formules côté serveur

Dix classeurs évaluent le moteur de formules Rust d’Univer : près de 2 millions de nœuds, comparaisons Excel et LibreOffice, graphiques et fichiers XLSX.

Le moteur de formules Rust d’Univer apporte le calcul de feuilles de calcul côté serveur à Univer Office SDK, pour les traitements par lots, les rapports et l’automatisation par agents. Lorsque budgets, prévisions et règles métier représentent des centaines de milliers ou des millions de formules, la capacité de calcul devient une fondation de l’application.

Nous avons mesuré dix classeurs mêlant formules répétées, statistiques conditionnelles, budgets entre feuilles et prévisions. Trois résultats illustrent l’échelle des tâches traitées :

  • Près de 2 millions de nœuds de formule : 12.29 secondes, chargement natif et calcul complet inclus.
  • Un budget de projet sur 54 feuilles : 1.27 seconde.
  • Des ventes avec COUNTIFS : 3.54 secondes.

Dix classeurs à l’épreuve

Rust inclut le chargement du snapshot natif et le calcul complet, hors conversion XLSX. Excel et LibreOffice incluent l’ouverture du XLSX source et le recalcul complet.

Secondes ; moins est préférable. Échelle horizontale logarithmique.

Résultats complets et classeurs téléchargeables

Cliquez sur un nom pour télécharger le XLSX source et explorer son modèle métier.

ClasseurMoteur de formules Rust d’Univer
Chargement natif + calcul (s)
Excel
Ouverture + recalcul complet (s)
LibreOffice
Ouverture + recalcul complet (s)
Un demi-million de formules3.542.3918.74
Charge de formules mixtes5.083.119.72
Prévisions · grand modèle17.678.5512.86
Grande analyse métier12.2910.808.99
Ventes COUNTIFS3.5419.47320.01
Budget de projet multifeuilles1.270.732.96
Formules d’agrégation0.271.033.10
IF imbriqués et jours ouvrés1.653.482.21
Modèle de calcul CBAM1.190.741.83
Prévisions · petit modèle13.025.797.61

À chaque modèle ses caractéristiques

Sur ces charges, le moteur de formules Rust d’Univer donne de bons résultats pour les comptages conditionnels, les agrégations et les jours ouvrés. Le nombre de formules ne suffit pas à prédire le temps : plages, fonctions et dépendances comptent aussi.

Excel et LibreOffice terminent les modèles prévisionnels plus tôt, ce qui indique une piste claire d’optimisation. Tous les résultats restent visibles pour aider les développeurs à juger leurs propres charges.

Intégrer le calcul à votre application Office

Le moteur de formules Rust d’Univer participe au calcul serveur d’Office SDK. Une application peut calculer une révision précise et enregistrer les résultats dans son Snapshot. Le navigateur réutilise les valeurs valides et continue à répondre aux modifications avec son moteur de formules.

Ce runtime de contenu commun permet de construire rapports en arrière-plan, traitements par lots et tâches d’agents, puis d’utiliser les résultats dans la suite du workflow métier.

Découvrez l’exécution sans interface et le calcul serveur, ou créez votre application avec le guide de démarrage Office SDK.

Méthodes et détails des classeurs

Rust charge du JSON natif préconverti ; Excel et LibreOffice ouvrent du XLSX avec les traitements de document, dont les styles. Les durées correspondent à ces formats d’entrée. Démarrage, conversion hors ligne et validation après mesure sont exclus ; aucun temps d’ouverture de référence n’est soustrait.

Rust utilise un échauffement et cinq mesures par classeur, chaque fois dans un processus indépendant et un nouveau document. Les valeurs Rust sont des médianes.

Environnement des références Excel et LibreOffice : Windows 11, Intel Core i7-13700H, environ 32 Go de RAM. Excel 16.0 build 20527.0, 20 threads de calcul ; LibreOffice 26.8.1.1, calcul multithread sur CPU activé, sans accélération OpenCL. La nouvelle mesure Rust utilise 20 threads.

MoteurOpération chronométréeStatistique publiée
Moteur de formules Rust d’UniverChronomètre continu : lecture du fichier natif → désérialisation JSON → load_snapshot → dépendances initiales → calcul complet forcé → application. Conversion XLSX hors ligne exclue.1 échauffement et 5 mesures par classeur ; médiane. Processus indépendant et nouveau document à chaque passage ; 20 threads.
Excel COMDu nouveau Workbooks.Open au retour de CalculateFullRebuild(), avec reconstruction explicite des dépendances et recalcul complet.1 échauffement et 5 mesures par classeur ; médiane.
LibreOffice sans interface / UNODe l’ouverture du XLSX original au retour de calculateAll(), travail effectué pendant l’ouverture inclus.médiane de 5 mesures ; ventes COUNTIFS est un seul diagnostic réussi.

Étapes de chargement et de calcul Rust

Chaque colonne a une médiane indépendante : leur somme peut différer de la médiane du total continu.

ClasseurLecture native, désérialisation
et chargement (s)
Dépendances, calcul complet
et application (s)
Total continu (s)
Un demi-million de formules1.272.253.54
Charge de formules mixtes0.604.505.08
Prévisions · grand modèle3.6513.9417.67
Grande analyse métier2.659.4612.29
Ventes COUNTIFS0.612.973.54
Budget de projet multifeuilles0.390.881.27
Formules d’agrégation0.090.180.27
IF imbriqués et jours ouvrés0.271.401.65
Modèle de calcul CBAM0.091.081.19
Prévisions · petit modèle2.4010.2013.02

Que contiennent les classeurs ?

Le nombre de formules désigne des nœuds exécutables, pas nécessairement des cellules physiques. Les cellules de données contiennent une valeur sans formule, en-têtes inclus. La suite comprend neuf classeurs principaux et une variante de taille, et non dix familles de formules indépendantes.

ClasseurNœuds de formuleCellules de données / feuillesCaractéristiques des formules
Un demi-million de formules500,0011,000,047 / 2SUM, AVERAGE, IF, XLOOKUP ; nombreuses formules répétées.
Charge de formules mixtes367,954432,055 / 7SUMIF, AVERAGEIFS ; statistiques conditionnelles, dates et texte.
Prévisions · grand modèle1,463,7211,549,982 / 46 niveaux d’imbrication ; INDEX, LARGE, OFFSET, MATCH et tableaux.
Grande analyse métier1,992,537113,084 / 317 niveaux ; références entre feuilles, texte et formules de compatibilité.
Ventes COUNTIFS349,630299,573 / 2IF, AND, COUNTIFS ; plages de comptage croissantes à chaque ligne.
Budget de projet multifeuilles68,576101,378 / 5454 feuilles ; budgets entre feuilles avec VLOOKUP et INDIRECT.
Formules d’agrégation26,9516,841 / 2IFERROR, AVERAGE, SUM ; agrégations à longues listes d’arguments.
IF imbriqués et jours ouvrés118,821338 / 110 niveaux de IF ; calcul de jours ouvrés avec NETWORKDAYS.
Modèle de calcul CBAM52,73913,738 / 196 niveaux ; recherches, statistiques conditionnelles, références dynamiques et matrices.
Prévisions · petit modèle974,6251,040,507 / 4Même famille de formules que le grand modèle prévisionnel, à plus petite échelle.

Données, validation et reproduction

Le rapport vérifie le nombre de formules et un échantillon des résultats afin de contrôler la complétude du calcul testé. Cela n’établit pas l’égalité de tous les résultats entre produits.

API de recalcul : Excel CalculateFullRebuild et LibreOffice calculateAll.

© 2026 DreamNum Co., Ltd.