
L'IA pour Excel en C# consiste à associer le jugement d'un modèle de langage à une véritable bibliothèque de traitement Excel au sein d'une application .NET. Ainsi, l'application peut fusionner, normaliser, analyser et mettre en forme des données de feuilles de calcul à partir d'instructions en langage naturel plutôt que par du code colonne par colonne. La partie difficile des rapports Excel n'a jamais été de créer le graphique final, mais de transformer une pile de classeurs sources incohérents en données fiables. Avec un agent IA, vous décrivez la tâche de reporting (« fusionnez ces 20 classeurs de magasins et signalez les magasins dont le chiffre d'affaires a chuté de plus de 30 % ») et vous obtenez un classeur mis en forme, pas seulement une réponse de chat. Spire.Agent.Office fournit les deux volets : la compréhension du langage et une couche documentaire déterministe qui garantit la création d'un fichier .xlsx (ou PDF) réel.
Navigation rapide
- Des classeurs hétérogènes à un modèle de données commun
- Transformer les règles métier en analyse en langage naturel
- De l'analyse à un rapport prêt pour la direction
- Construire le flux de travail en C#
- FAQ
1. Le véritable goulot d'étranglement dans l'automatisation des rapports Excel
Prenons la tâche récurrente derrière la plupart des demandes de « rapports mensuels ». Une équipe opérationnelle gère 20 magasins régionaux, et chaque magasin envoie un classeur de ventes à la fin du mois. En théorie, il s'agit d'un seul rapport. En pratique, ce sont vingt fichiers différents qui partagent par hasard un modèle de nom de fichier :
- Les colonnes ne correspondent pas. Un magasin appelle le chiffre
Revenu, un autreMontant des ventes, un troisièmeVentes nettes. - La mise en page ne correspond pas. Un magasin place les mois en colonnes, un autre en lignes, un troisième ajoute une colonne de notes au milieu.
- Les types de données ne correspondent pas. Les dates arrivent sous forme de texte, les nombres arrivent en milliers, et au moins un magasin fusionne une ligne de titre dans l'en-tête.
Ainsi, avant que quiconque puisse produire un graphique pour la direction, un analyste passe la semaine à ouvrir des fichiers, mapper les colonnes, normaliser les dates, traquer les fautes de frappe, et seulement ensuite vérifier les anomalies et assembler le rapport. Rien de tout cela ne relève de la « génération de rapport ». Tout cela n'est que préparation des données.
Le point à retenir : la partie difficile des rapports Excel est rarement la création du graphique final. C'est transformer des classeurs sources incohérents en données réellement fiables. Une bibliothèque de graphiques tracera volontiers des données erronées ; ce qui manque à l'équipe, c'est un chemin fiable entre les fichiers bruts de la boîte de réception et un tableau propre et comparable. C'est exactement là qu'un agent IA change la donne économique.
2. Ce qui change lorsqu'un agent IA entre dans le flux de travail
L'automatisation de cette tâche n'est pas nouvelle, elle est simplement coûteuse en temps normal. Comparez les deux flux de travail :
Automatisation traditionnelle
Inspecter les fichiers
→ mapper les colonnes
→ normaliser les données
→ écrire les règles
→ générer le classeur
Chaque étape avant la dernière est prédéfinie : vous écrivez un mappage de colonnes pour chaque en-tête connu, un analyseur de dates pour chaque format connu, et un seuil pour chaque règle. Dès qu'un magasin renomme une colonne ou qu'une règle métier change, le mappage et les règles sont faux, et un humain doit intervenir à nouveau.
Automatisation par agent
Décrire la tâche de reporting
→ fournir les classeurs sources
→ examiner le résultat
L'agent lit la signification de chaque classeur plutôt qu'une position fixe, de sorte que le mappage des colonnes et l'ensemble des règles n'ont plus besoin d'être énumérés à l'avance. Ce qu'il supprime, c'est précisément la partie coûteuse : le travail de prédéfinition d'un schéma et d'un ensemble de règles qui seront obsolètes au prochain fichier.

Le reste de cet article parcourt ce pipeline une fois, des classeurs bruts à un PDF imprimé, en utilisant le scénario des 20 magasins comme exemple fil rouge. Les sections 3 à 5 expliquent ce que fait l'agent à chaque étape ; la section 6 fournit le code C# complet qui le pilote.
3. Des classeurs hétérogènes à un modèle de données commun
La version spécifique à Excel du problème est que différents classeurs « semblent identiques » sans l'être réellement. Trois magasins peuvent chacun envoyer un tableau avec quatre colonnes et ne vous donner aucun moyen de les fusionner sans interprétation humaine :
| Magasin A | Magasin B | Magasin C |
|---|---|---|
| Revenu | Montant des ventes | Ventes nettes |
| Mois | Période de rapport | Date |
| Unités | Quantité vendue | Qté |
Il n'y a pas d'index de colonne qui les mappe les uns aux autres, car le mappage est sémantique, pas positionnel. Revenu, Montant des ventes et Ventes nettes sont trois noms pour le même concept, et seule la compréhension de l'en-tête permet de les aligner.
L'étape de consolidation de l'agent transforme cet alignement sémantique en un schéma unique :
Magasin / Région / SKU / UnitésVendues / Revenu / Mois
Il lit chaque classeur source, résout les noms d'en-tête par rapport à ce modèle cible, aligne les lignes et les colonnes, ignore les lignes d'en-tête et de titre en double, et écrit un tableau normalisé. Le développeur n'écrit jamais de routine FindColumnByHeader("Revenu") — l'instruction nomme le schéma cible, et l'agent détermine le mappage à partir de chaque fichier.
C'est l'étape avec le gain ponctuel le plus important, car c'est celle qui consomme actuellement le plus de temps aux analystes et qui échoue le plus souvent lorsqu'un nouveau magasin rejoint le réseau.
4. Transformer les règles métier en analyse en langage naturel
Une fois les données au même endroit, le reporting nécessite du jugement, et le jugement est là où les règles codées en dur échouent. L'exemple utilisé ici repose sur une règle financière typique :
Signaler les lignes où le revenu a chuté de plus de 30 % ou a augmenté de plus de 50 % par rapport au mois précédent.
Remarquez tout ce qui est contenu dans cette phrase, et à quel point chaque partie est maladroite sous forme de code :
-
Pourquoi 30 % et 50 % ? Ce sont des seuils métier avec un contexte — un magasin saisonnier, un nouveau SKU ou une promotion changent ce que signifie « inhabituel ». Un
if (change < -0.30)codé en dur traite chaque magasin de manière identique et déclenche de fausses alertes dues à la saisonnalité. - Comment le modifier ? Dans le code, vous recompilez et redéployez. Dans l'instruction, l'analyste modifie une phrase : « a chuté de plus de 20 % », ou « uniquement pour la région Est », ou « signaler uniquement les SKU avec plus de 100 unités vendues ».
- Ajouter une dimension ? Vous voulez que la règle soit appliquée par magasin et par région et par mois ? Vous ajoutez une clause à l'instruction, pas une boucle imbriquée.
-
Expliquer le résultat ? L'agent peut ajouter une colonne
Causeavec une explication probable en une phrase pour chaque ligne signalée — quelque chose qu'une simple comparaison de seuil ne pourra jamais produire.
Le principe qui découle de cette section mérite d'être énoncé clairement :
Le code définit le comment ; les instructions définissent le quoi.
Le développeur cesse de coder la règle et commence à décrire le résultat. La règle reste lisible, modifiable par l'entreprise, et survit à l'ajout d'un nouveau magasin ou à un changement de seuil sans modification du code.
Pour un exemple complet de cette analyse pilotée par les instructions appliquée à un flux de travail de classement, consultez le tutoriel sur l'analyse et le classement des scores des étudiants.
5. De l'analyse à un rapport prêt pour la direction
Trouver des anomalies n'est que la moitié du travail de reporting. Le résultat doit encore devenir un classeur que quelqu'un peut réellement utiliser — la feuille de calcul de l'analyste n'est pas le livrable ; le résumé pour la direction l'est.
Le pipeline se complète ainsi :
Classeurs bruts
↓
Données consolidées
↓
Anomalies
↓
Résumé pour la direction
↓
PDF
L'instruction finale compose le livrable : une feuille Résumé au début avec un bloc KPI (revenu total, meilleur magasin, moins bon magasin, nombre d'anomalies signalées), un tableau de tendance mensuelle, un graphique à barres du revenu par région, et une mise en forme prête à l'impression. Pointer la même instruction vers un chemin .pdf exporte le rapport identique sous forme de PDF pour distribution, sans étape de rendu séparée.
Le point à retenir : l'analyse et la composition sont deux tâches différentes, et l'agent effectue les deux. Le travail de l'analyste devient l'examen de la liste courte des anomalies et la validation, et non la reconstruction du rapport chaque mois.
6. Construire le flux de travail en C#
Tous les éléments ci-dessus sont pilotés par un pipeline C#. Configurez l'agent une fois, puis exécutez trois instructions en séquence : consolider, analyser, rapporter. La configuration complète — jeton, packages et câblage du projet — est documentée étape par étape dans le tutoriel Démarrage ; ici, nous nous concentrons sur le flux de travail lui-même.
using System.IO;
using Spire.Xls;
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
AIOptions options = new AIOptions {
SpireToken = spireToken,
WorkDir = @"C:\retail-ops\output",
TimeoutMs = 300000
};
string[] storeFiles = Directory.GetFiles(@"C:\retail-ops\inbox", "*.xlsx");
Directory.CreateDirectory(@"C:\retail-ops\output");
1. Consolider. Passez les 20 fichiers de la boîte de réception en tant que pièces jointes et nommez le schéma cible. La normalisation de la section 3 se produit ici, pilotée par l'instruction plutôt que par un mappage de colonnes :
using (Workbook consolidated = new Workbook())
{
AIResult result = consolidated.AI(options).ExecuteInstruction(
consolidated,
"Lisez chaque classeur de ventes régionales dans la boîte de réception et fusionnez-les en une seule feuille de calcul. " +
"Chaque magasin nomme ses colonnes différemment (par exemple Ventes vs Montant, Mois vs Période) ; " +
"normalisez-les vers un schéma unique : Magasin, Région, SKU, UnitésVendues, Revenu, Mois. Ignorez " +
"les lignes d'en-tête en double et enregistrez le résultat fusionné en tant que classeur.",
@"C:\retail-ops\output\consolidated.xlsx",
storeFiles);
if (result == null || !result.Success)
throw new InvalidOperationException($"La consolidation a échoué : {result?.ErrorMessage}");
}
2. Analyser. Chargez le fichier consolidé et énoncez la règle de la section 4 en anglais simple. L'agent ajoute une feuille Anomalies et laisse les données sources intactes :
using (Workbook analysis = new Workbook())
{
analysis.LoadFromFile(@"C:\retail-ops\output\consolidated.xlsx");
AIResult result = analysis.AI(options).ExecuteInstruction(
analysis,
"Ajoutez une feuille 'Anomalies'. Comparez le revenu de chaque magasin et SKU par rapport au mois " +
"précédent, signalez les lignes où le revenu a chuté de plus de 30 % ou a augmenté de plus de 50 %, appliquez " +
"un remplissage rouge aux baisses et un remplissage vert aux hausses, et ajoutez une colonne 'Cause' avec une " +
"explication probable en une phrase. Laissez les feuilles de données originales inchangées.",
@"C:\retail-ops\output\analyzed.xlsx");
if (result == null || !result.Success)
throw new InvalidOperationException($"L'analyse a échoué : {result?.ErrorMessage}");
}
La feuille Anomalies se place à côté des données sources, avec les lignes signalées, les remplissages et la colonne Cause appliqués par l'instruction :

3. Rapporter. Composez le résumé pour la direction de la section 5 et exportez-le. Le savePath choisit seul le format — .xlsx ici, .pdf pour la distribution :
using (Workbook report = new Workbook())
{
report.LoadFromFile(@"C:\retail-ops\output\analyzed.xlsx");
AIResult result = report.AI(options).ExecuteInstruction(
report,
"Produisez un rapport de gestion. Ajoutez une feuille 'Résumé' au début avec un bloc KPI " +
"(revenu total, meilleur magasin, moins bon magasin, nombre d'anomalies signalées), un tableau de tendance " +
"mensuelle et un graphique à barres du revenu par région. Mettez-le en forme pour l'impression et enregistrez le classeur terminé.",
@"C:\retail-ops\output\monthly-report.xlsx");
if (result == null || !result.Success)
throw new InvalidOperationException($"La génération du rapport a échoué : {result?.ErrorMessage}");
}
La feuille Résumé se place au début du classeur, prête pour l'impression ou l'exportation PDF :

Appels API clés
-
Workbook.AI(options)— attache le processeur de document IA à un objet classeur existant -
ExecuteInstruction(doc, instruction, savePath, attachments)— exécute une étape et écrit le résultat -
AIResult.Success/AIResult.ErrorMessage— vérifie chaque étape et fait remonter les échecs
Ce que vous écririez sans l'agent
Par contraste, la voie traditionnelle du SDK pour les trois mêmes étapes localise chaque colonne par chaîne d'en-tête, code en dur chaque seuil et définit chaque remplissage cellule par cellule — et doit tout reconfigurer lorsqu'un magasin renomme une colonne ou que la règle change :
foreach (string file in storeFiles)
{
Workbook wb = new Workbook();
wb.LoadFromFile(file);
Worksheet sheet = wb.Worksheets[0];
// Échoue dès qu'un magasin nomme la colonne "Ventes" au lieu de "Revenu".
int revenueCol = FindColumnByHeader(sheet, "Revenu");
int storeCol = FindColumnByHeader(sheet, "Magasin");
for (int r = sheet.LastRow; r >= 2; r--)
{
double current = double.Parse(sheet.Range[r, revenueCol].Text);
double prior = double.Parse(sheet.Range[r, revenueCol + 1].Text);
double change = (current - prior) / prior;
// Un seuil codé en dur ; un magasin saisonnier déclenche de fausses alertes.
if (change < -0.30) sheet.Range[r, revenueCol].Style.Color = Color.Red;
}
// ... puis fusionner, puis résumé, puis graphique -- des centaines de lignes par magasin et par mois.
}

L'agent ne supprime pas le besoin de code — il supprime le besoin de code de mappage. La différence réside dans l'endroit où vit la logique : dans un chercheur de colonne et un seuil, ou dans une phrase que l'entreprise peut lire et modifier.
7. Où s'arrête l'IA et où commence la logique applicative
Une façon plus honnête de penser à la frontière qu'une liste de « peut et ne peut pas » : l'agent n'élimine pas la logique applicative déterministe — il se place au-dessus d'elle.
L'application possède toujours tout ce qui n'a rien à voir avec la compréhension de la feuille de calcul :
- Découverte et accès aux fichiers — trouver les fichiers de la boîte de réception, vérifier les autorisations et les préparer
- Planification du flux de travail — quand le rapport s'exécute, sur quel déclencheur et dans quel ordre
- Contrôle des sources de données — quels fichiers sont des entrées autorisées et d'où ils viennent
- Gestion des erreurs et tentatives — ce qui se passe lorsqu'un fichier est manquant ou qu'une étape échoue
- Approbation finale — un humain examine les anomalies signalées avant la validation
- Réconciliation externe — faire correspondre le rapport avec un système d'enregistrement
L'agent possède les parties qui sont réellement sémantiques :
- Compréhension — lire ce que chaque colonne signifie réellement
- Normalisation — aligner des schémas hétérogènes en un seul modèle
- Interprétation — appliquer une règle métier pour décider ce qui est inhabituel
- Transformation — transformer des données brutes en un résumé, un graphique et une mise en forme
- Composition — assembler le classeur ou le PDF final
Ce cadre est plus utile qu'un tableau de capacités car il vous indique où concentrer vos efforts d'ingénierie. Gardez la plomberie déterministe dans le code — où elle est testable et auditable — et confiez le travail sémantique à l'agent. Chaque côté fait ce pour quoi il est doué.
8. Ajouter l'IA à un flux de travail Excel .NET existant
La dernière chose qui mérite d'être explicitée est le peu de choses que vous avez à reconstruire pour y arriver. Si votre application fonctionne déjà avec Excel via Spire.Xls, le modèle de document que vous possédez déjà est le point d'intégration :
Workbook
↓
Workbook.AI(options)
↓
ExecuteInstruction(...)
Vous n'introduisez pas une nouvelle couche de document ou un service de traitement de document séparé. Vous ajoutez une couche d'exécution en langage naturel sur l'objet Workbook que vous avez déjà. Le même objet qui a ouvert, fusionné et enregistré vos fichiers accepte maintenant une instruction et exécute le flux de travail, avec le moteur Excel déterministe garantissant que la sortie est un fichier réel et bien formé — cellules fusionnées, formats de nombre et graphiques intacts. Le même modèle ExecuteInstruction s'étend aux documents Word et PDF — voir Revue de contrat IA en C#.
C'est la proposition de valeur pour un développeur Excel, énoncée dans les termes que vous utilisez déjà : non pas « adopter une plateforme IA », mais « apprendre au classeur que vous utilisez déjà à prendre des instructions ». Lorsqu'un magasin renomme une colonne ou que l'équipe financière change la règle de signalement, la correction est une modification d'une phrase, pas une reconstruction du pipeline de documents.
9. FAQ
Dois-je envoyer mes données Excel dans le cloud ?
Pas nécessairement. Spire.Agent.Office s'exécute à partir de votre propre application, donc le SDK et le traitement des documents restent dans votre environnement ; vos fichiers ne sont pas téléchargés vers un service tiers pour stockage ou conversion. Pour analyser le contenu, l'IA a besoin des données pertinentes, et elles sont envoyées au modèle pour traitement — une étape inhérente à tout flux de travail IA. Si vous déployez votre propre modèle sur votre réseau local, le contenu reste entièrement au sein de votre infrastructure. Si vous vous connectez via une API de modèle hébergé telle qu'OpenAI ou Azure OpenAI, le contenu pertinent est transmis à ce fournisseur sur le réseau selon votre configuration.
Quels formats Excel prend-il en charge ?
L'entrée couvre les fichiers de classeur standard tels que XLSX et XLS, et l'agent lit le classeur directement dans son format natif. La sortie peut être enregistrée sous forme de XLSX, XLS, CSV, PDF ou HTML, de sorte que le rapport terminé peut aller directement vers une archive ou une liste de distribution.
Peut-il remplacer ma revue financière ou opérationnelle ?
Non. L'agent automatise la lecture, la normalisation, l'analyse et la mise en forme — les heures qu'un analyste passe chaque mois — mais la validation finale reste entre les mains d'un réviseur humain. Considérez les anomalies signalées comme une liste courte à vérifier, et non comme une décision déjà prise.
En quoi est-ce différent de coller mes données dans ChatGPT ?
Un modèle de chat peut vous dire ce qui semble inhabituel mais ne peut pas placer cette réponse dans un classeur stylisé avec une feuille de résumé, une mise en forme conditionnelle et un graphique, et il ne peut pas exporter un PDF. Un agent Excel IA associe le jugement du modèle de langage à une couche Excel déterministe, de sorte que la sortie est un fichier réel et bien formé que votre équipe peut ouvrir et distribuer.
Puis-je utiliser mon propre modèle d'IA ?
Oui. Spire.Agent.Office prend en charge une intégration flexible des modèles d'IA et est compatible avec l'infrastructure IA grand public, y compris les API de modèles hébergés et les modèles déployés en privé. Vous pouvez pointer l'agent vers votre propre point de terminaison. Pour des questions sur les fournisseurs pris en charge dans votre déploiement, contactez-nous.
Prêt à automatiser vos rapports Excel ?
La consolidation, l'analyse des anomalies et la génération de rapports sont les endroits les plus rapides pour obtenir de la valeur : pointez l'agent vers la boîte de réception, décrivez le rapport et obtenez un classeur ou un PDF mis en forme. Suivez le tutoriel Démarrage pour exécuter votre premier flux de travail de feuille de calcul en .NET.
Lectures complémentaires
- Tutoriel sur l'automatisation de l'analyse et du classement des scores des étudiants -- un flux de travail Excel que l'agent exécute de bout en bout
- Revue de contrat IA en C# -- le même modèle piloté par les instructions appliqué aux documents Word et PDF
- Présentation du produit Spire.Agent.Office -- SDK d'agent IA pour chaque format de document Office