Votre fournisseur a été racheté, et « ACME Corp » est maintenant « Globex Ltd » dans chaque contrat, planning, budget et diaporama qui le mentionne. Avec le serveur GroupDocs.Editor MCP exécuté localement, Claude Desktop, Cursor ou Copilot le font en lot : pour chaque fichier du dossier, il appelle replace_text, conserve la mise en forme, indique combien d’occurrences il a modifiées, et n’écrit rien pour les fichiers qui ne mentionnaient jamais l’ancien nom. Aucun fichier n’est téléchargé, et aucun original n’est écrasé :
Renommer ACME Corp en Globex Ltd dans chaque document du dossier contracts, conserver la mise en forme et me donner un compte‑par‑fichier.
La version étape par étape se trouve dans la documentation : Comment rechercher et remplacer du texte dans un dossier de documents sans casser la mise en forme.
Pourquoi s’agit‑il d’une tâche pour un outil et non pour le modèle ?
Parce que le résultat doit être vérifiable. Quarante documents sont trop nombreux pour les comparer à l’œil, et un modèle qui « a mis à jour tous les contrats » ne vous donne rien à vérifier. Un outil de recherche‑et‑remplacement vous fournit un nombre par fichier. Ces nombres constituent la piste d’audit : vous savez quels fichiers ont changé, de combien, et lesquels n’avaient pas besoin d’être modifiés.
Il doit également être ennuyeux de la bonne façon. Le nom de la partie en gras reste en gras, le tableau des frais conserve sa grille, les titres conservent leurs styles. Le modèle ne retape jamais le document : le moteur l’ouvre, remplace les mots et écrit une copie. Une particularité du serveur 26.10.0 : cette copie est générée à partir du modèle d’édition HTML du moteur, et un pied de page Word ne passe pas. Un contrat qui indique le fournisseur dans son pied de page nécessite le aller‑retour HTML paginé à la place ; la FAQ répertorie ce qu’un document Word conserve.
Ce que l’agent voit
Capturé depuis GroupDocs.Editor.Mcp 26.10.0 sur un petit jeu de données synthétique : un accord de services, un NDA, une lettre de bienvenue, un budget de trois feuilles et un diaporama de revue de trois diapositives.
-> replace_text {"file":{"filePath":"contracts/msa-northwind.docx"},
"find":"ACME Corp","replace":"Globex Ltd","wholeWord":true}
<- Replaced 6 occurrence(s) of 'ACME Corp' in 'msa-northwind.docx'
Saved to: …/msa-northwind_edited.docx
-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"}, ...}
<- Replaced 1 occurrence(s) of 'ACME Corp' in 'nda-northwind.docx'
-> replace_text {"file":{"filePath":"contracts/welcome-letter.docx"}, ...}
<- Text replacement found no matches for 'ACME Corp' in
'welcome-letter.docx'. No file was written.
-> replace_text {"file":{"filePath":"budget.xlsx"}, ..., "worksheet":1}
<- Replaced 1 occurrence(s) of 'ACME Corp' in worksheet 1 of 3 of
'budget.xlsx'
-> replace_text {"file":{"filePath":"review.pptx"}, ..., "slide":1}
<- Replaced 1 occurrence(s) of 'ACME Corp' in slide 1 of 3 of
'review.pptx'
Le rapport de l’agent s’écrit tout seul : six dans l’accord, un dans le NDA, aucun dans la lettre de bienvenue, un dans le résumé du budget, un dans la première diapositive.
La boucle
contracts/ + budget.xlsx + review.pptx
|
+-- for each file:
| replace_text {"find":"ACME Corp","replace":"Globex Ltd",
| "wholeWord":true} (+ "worksheet"/"slide")
| -> "Replaced N occurrence(s) ..." -> <name>_edited.<ext>
| -> "found no matches ... No file was written."
|
'-- report: file -> count; files with 0 listed separately
Deux habitudes rendent la boucle fiable. Utilisez wholeWord: true pour les noms, afin que « ACME Corp » ne corresponde pas à l’intérieur de « ACME Corporation Holdings ». Et demandez à l’agent de lister les fichiers avec zéro correspondance, car un zéro dans un fichier que vous vous attendiez à modifier est la seule chose qui mérite un second examen.
Vérifier le lot avant de remplacer quoi que ce soit
Les copies éditées se trouvent à côté des originaux jusqu’à ce que vous décidiez autrement, et c’est le moment de vérifier. Trois vérifications simples permettent d’attraper presque tous les problèmes. Comparez les comptes par fichier avec ce que vous attendiez : un accord qui cite le fournisseur sur chaque page ne devrait pas ne signaler qu’une occurrence. Ne comptez pas sur le fait de relancer le même remplacement : une phrase découpée par la mise en forme est également manquée la deuxième fois, et « found no matches » donnerait l’impression d’un tout‑clear. Demandez à l’agent d’exécuter extract_html sur chaque copie éditée à la place ; son aperçu en texte brut regroupe les fragments de mise en forme, ainsi un « ACME Corp » résiduel apparaît. Les orthographes variantes (« Acme Corp. » avec un point, « ACME Corporation ») méritent un passage dédié avec matchCase: false ou une expression régulière. Enfin, ouvrez un fichier édité de chaque type, un contrat, un classeur et un diaporama, pour confirmer que la mise en forme et le pied de page ont survécu. Ce n’est qu’alors que vous déplacez les fichiers _edited sur les originaux, ou que vous laissez votre système de documents les versionner.
Modèles, casse et format dans le même appel
Le renommage est le cas le plus fréquent, mais le même outil couvre le reste de la famille « uniformiser le libellé ». Dans le même test :
-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"},
"find":"v2\\.3\\b","replace":"v2.4","regex":true,
"outputName":"nda-northwind-v2.4.docx"}
<- Replaced 1 occurrence(s) of 'v2\.3\b' in 'nda-northwind.docx'
-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"},
"find":"acme corp","replace":"Globex Ltd","matchCase":false,
"format":"pdf"}
<- Replaced 1 occurrence(s) of 'acme corp' in 'nda-northwind.docx'
Saved to: …/nda-northwind_edited.pdf
regex: true utilise une expression régulière .NET, ce qui permet de mettre à jour une version ou de changer le format d’une date dans un dossier. matchCase: false détecte les capitalisations incohérentes. format: "pdf" édite et convertit en une seule étape, pour la copie qui va de l’autre côté.
Une digression pour les agents de codage
Le même schéma fonctionne dans un dépôt. Les notes de version en DOCX et les spécifications en XLSX sont invisibles pour sed ; Claude Code avec ce serveur peut augmenter la chaîne de version dans les deux dans le cadre de la tâche de publication. Insérez la règle dans les instructions du projet afin que l’agent utilise l’outil au lieu d’essayer de décompresser les fichiers Office :
To change wording in .docx/.xlsx/.pptx/.pdf files in this repo, use the
groupdocs-editor MCP server's replace_text (wholeWord for names, regex for
versions). Report the count per file. Never rewrite an Office file by hand.
Limites honnêtes
- La correspondance se fait à l’intérieur d’un seul fragment de mise en forme. Dans notre accord, un septième « ACME Corp », avec « ACME » en italique, n’a pas été remplacé, et le compte de six l’a indiqué. Les phrases découpées à travers les styles nécessitent le aller‑retour HTML.
- Chaque résultat est placé à la racine du dossier de sortie sous la forme
<name>_edited.<ext>, même si l’original se trouvait dans un sous‑dossier. Aucun fichier n’est écrasé : un nom déjà utilisé reçoit un numéro (msa-northwind_edited (1).docx), donc fournissezoutputNamelorsque les noms peuvent entrer en collision. - Sur le serveur 26.10.0, la copie éditée d’un document Word perd son pied de page, et les contrôles de contenu sont aplatis en texte brut. Vérifiez les documents qui contiennent l’ancien nom dans le pied de page.
- Les classeurs et les présentations sont édités une feuille ou une diapositive par appel. En mode évaluation, seules les deux premières peuvent être éditées, et le serveur l’indique : « Le mode évaluation n’édite que les 2 premières diapositives d’une présentation ; la diapositive 3 est hors de portée. »
- Le mode évaluation ajoute également une ligne de bannière à chaque sortie, et un PDF de plus de deux pages est refusé.
FAQ
Peut‑il remplacer du texte dans Word, Excel et PowerPoint en un seul lot ?
Oui. L’agent appelle le même outil pour chaque fichier et ajoute worksheet ou slide pour les classeurs et les présentations.
Comment savoir quels fichiers ont été modifiés ?
Chaque appel renvoie le nombre, et les fichiers sans correspondance ne sont pas écrits du tout. Demandez à l’agent un tableau par fichier.
Les originaux seront‑ils écrasés ?
Non. Chaque modification écrit un nouveau fichier ; les originaux restent tels quels jusqu’à ce que vous les remplaciez vous‑même.
Approfondir
- Documentation, guide canonique : Comment rechercher et remplacer du texte dans un dossier de documents sans casser la mise en forme
- Hub de documentation : GroupDocs.Editor MCP Server
- Page produit GroupDocs.Editor MCP — installation en un clic pour VS Code et Cursor, configurations pour tous les autres clients
- Commencez ici : Pourquoi un agent IA ne doit pas réécrire votre document pour changer trois mots
- Lié : Remplir des formulaires Word à partir d’une feuille de calcul avec un agent IA, localement
- Lié : Modifier une feuille, garder le classeur : éditions chirurgicales avec un aller‑retour HTML
- Lié : Modifier un PDF avec un agent IA ? Le convertir d’abord en Word, localement
- Sur site et modèle de sécurité : 3 architectures pour le traitement de documents IA, et celle qui garde les fichiers dans votre réseau
- Questions : GroupDocs Editor forum
- Source : GroupDocs.Editor.Mcp sur GitHub · NuGet package