Le budget comporte trois feuilles de calcul, et le service financier souhaite modifier deux cellules sur la deuxième. Confier le classeur complet à un agent IA pour « mettre à jour le T3 » l’incite à reconstruire les trois. Avec le serveur GroupDocs.Editor MCP exécuté localement, Claude, Cursor ou Copilot extraient uniquement cette feuille sous forme de HTML éditable, effectuent les changements demandés, puis l’enregistrent dans une copie du classeur original, de sorte que les autres feuilles ne passent jamais par le modèle. Les diapositives fonctionnent de la même manière :

Dans budget.xlsx, sur la feuille 2 (T3), définir Voyage à 12 500 et renommer Formation en « Formation (externe) ». Laisser les autres feuilles intactes.

La version détaillée étape par étape se trouve dans la documentation : Comment modifier une feuille de calcul ou une diapositive et la réintégrer dans l’original.

Pourquoi ne pas remettre le fichier complet à l’agent ?

Parce qu’un modèle ne peut pas contenir un classeur. Il ne peut contenir que du texte. Chaque feuille que vous lui donnez est une feuille qu’il peut « gentiment » reformuler : nombres reformatés, formule transformée en sa valeur, colonne incomprise supprimée. Même lorsqu’il n’y a aucun problème, vous ne pouvez pas le savoir à partir de la réponse. La solution est de restreindre le périmètre : donnez à l’agent exactement la partie qu’on lui a demandé de modifier et gardez le reste hors de sa portée.

Le HTML est le format approprié pour cette partie. Les tableaux, styles, polices et images y survivent, les modèles le lisent et l’écrivent correctement, et il se mappe de nouveau sur la structure originale. Le texte brut perdrait le formatage ; le XML brut du .xlsx est un labyrinthe qu’aucun agent ne devrait éditer.

Le aller‑retour

budget.xlsx  (3 worksheets: Summary, Q3, Q4)
   |-- extract_html {"file":{...},"worksheet":2} --> budget_worksheet2.html
   |        agent edits the HTML: Travel 9000 -> 12500,
   |        "Training" -> "Training (external)"
   '-- save_from_html {"htmlFile":{"filePath":"budget_worksheet2.html"},
                       "format":"xlsx",
                       "sourceFile":{"filePath":"budget.xlsx"},
                       "worksheet":2}
         --> budget-q3-revised.xlsx : worksheet 2 replaced, 1 and 3 untouched
evaluation mode: worksheets/slides 1-2 can be edited; the server refuses 3+

Ce que le serveur a renvoyé

Capturé depuis GroupDocs.Editor.Mcp 26.10.0 sur un budget synthétique :

-> extract_html {"file":{"filePath":"budget.xlsx"},"worksheet":2}
<- Extracted worksheet 2 of 3 of 'budget.xlsx' as editable HTML
   Saved to: …/budget_worksheet2.html
   Next: edit the saved .html and call save_from_html to write it back
   as DOCX, XLSX, PPTX, PDF or another format.
   Preview (plain text): ... Cost centre Planned (EUR) Owner Hosting
   57600 IT Support 14400 IT Travel 9000 Sales Training 6000 HR

-> save_from_html {"htmlFile":{"filePath":"budget_worksheet2.html"},
     "format":"xlsx","sourceFile":{"filePath":"budget.xlsx"},
     "worksheet":2,"outputName":"budget-q3-revised.xlsx"}
<- Saved 'budget_worksheet2.html' into a copy of 'budget.xlsx',
   replacing worksheet 2 of 3 (XLSX)
   Saved to: …/budget-q3-revised.xlsx

L’ouverture du résultat confirme le périmètre : sur le T3, Voyage vaut 12500 et la ligne indique « Training (external) » ; Hosting et Support restent inchangés ; Summary et T4 sont tels qu’ils étaient. Le budget.xlsx original n’a pas été modifié.

Les outils adressent les feuilles et les diapositives par numéro, pas par nom ; get_document_info renvoie le nombre, d’où le prompt « worksheet 2 (Q3) ». La réponse d’extraction comporte un aperçu en texte brut, ce qui permet à l’agent de vérifier qu’il a la bonne feuille avant toute modification, ainsi qu’une ligne « Next: » indiquant l’appel suivant. Les agents suivent bien ces indications. Pour une diapositive, l’aperçu peut commencer par le texte de l’espace réservé du maître (« Click to edit Master title style »), donc l’agent doit vérifier le HTML lui‑même.

Diapositives, et la règle unique pour les présentations

La même paire fonctionne sur un diaporama : extract_html avec "slide": 2, modification, save_from_html avec "slide": 2 et le document original comme sourceFile. Dans notre test, la diapositive 2 d’un diaporama de trois diapositives a été exportée en HTML, « 12 percent » est devenu « 14 percent », et le fichier est revenu sous forme de review-revised.pptx avec les diapositives 1 et 3 intactes.

Pour PowerPoint, le sourceFile n’est pas optionnel. Le HTML seul ne transporte pas le maître de diapositive, et le serveur le signale plutôt que de produire un diaporama cassé :

-> save_from_html {"htmlFile":{"filePath":"review_slide2.html"},
                   "format":"pptx"}
<- Save from HTML failed for 'review_slide2.html' (-> pptx): 'pptx' output
   cannot be created from HTML alone; pass the original document as
   'sourceFile'.

Le message indique l’argument manquant, de sorte qu’un agent corrige l’appel de lui-même.

Quand le aller‑retour l’emporte sur rechercher‑remplacer

replace_text est le chemin le plus court pour un mot ou un nom. Le aller‑retour sert à tout le reste : modifier plusieurs cellules en même temps, reformuler une étiquette et un nombre ensemble, restructurer un tableau sur une diapositive, ou une phrase que replace_text ne voit pas parce qu’elle est découpée en deux séquences de formatage. C’est aussi la façon dont l’agent lit une partie avant de décider quoi changer.

Lire avant d’écrire

La première moitié du aller‑retour est utile en elle‑même. Un agent interrogé « quel est le budget prévu pour les déplacements au T3, et qui en est responsable ? » peut extraire la feuille T3 et répondre à partir du HTML sans toucher à rien, et un agent sur le point de modifier doit d’abord faire exactement cela : lire la partie, indiquer le changement qu’il prévoit, puis écrire. Intégrez cet ordre dans les instructions de votre projet afin qu’il devienne la règle par défaut :

To change a worksheet or slide, use the groupdocs-editor MCP server:
extract_html for that one part, edit the HTML, save_from_html with the
original as sourceFile and the same worksheet/slide number. Never rebuild
the whole workbook or deck. Say which cells or text you changed.

La dernière ligne est la plus importante. « J’ai changé Travel de 9000 à 12500 et renommé Training sur le T3 » est une réponse que le relecteur peut vérifier contre le fichier en quelques secondes.

Limites honnêtes

  • En mode évaluation, seules les deux premières feuilles ou diapositives peuvent être modifiées, et le serveur refuse la troisième avec la raison suivante : « Evaluation mode edits only the first 2 visible worksheets of a workbook; worksheet 3 is beyond them. »
  • Les sauvegardes non licenciées sont des brouillons : la feuille modifiée reçoit une ligne de bannière en haut et le classeur obtient une feuille supplémentaire « Evaluation Warning ».
  • Le HTML extrait d’une exécution non licenciée commence par la même ligne d’évaluation (l’aperçu ci‑dessus la montre), de sorte que l’agent doit modifier les cellules, pas cette ligne.
  • Les numéros de feuilles et de diapositives commencent à 1, les cachées étant comptées. Une diapositive cachée nécessite showHidden: true ; une feuille cachée est refusée quel que soit le paramètre showHidden, il faut donc la rendre visible dans le classeur d’abord.

FAQ

La modification d’une feuille affecte‑t‑elle les autres ?
Non. Le HTML modifié remplace uniquement la feuille que vous avez nommée, dans une copie de l’original ; le reste est conservé à partir du fichier source.

Puis‑je faire cela avec des diapositives PowerPoint ?
Oui, en utilisant "slide" au lieu de "worksheet" et en transmettant le document original comme sourceFile, ce qui est requis pour la sortie PowerPoint.

Où le résultat est‑il enregistré ?
Dans un nouveau fichier du dossier de stockage, budget-q3-revised.xlsx dans cet exemple parce que nous avons indiqué outputName ; l’original reste intact.

Approfondir