Il tuo fornitore è stato acquisito e “ACME Corp” è ora “Globex Ltd” in ogni contratto, programma, budget e presentazione che lo menziona. Con il server GroupDocs.Editor MCP in esecuzione localmente, Claude Desktop, Cursor o Copilot lo eseguono in batch: per ogni file nella cartella chiama replace_text, mantiene la formattazione, riporta quante occorrenze ha modificato e non scrive nulla per i file che non hanno mai citato il vecchio nome. Non viene caricato nulla e nessun originale viene sovrascritto:

Rinomina ACME Corp in Globex Ltd in ogni documento nella cartella contracts, mantieni la formattazione e forniscimi un conteggio per file.

La versione passo‑passo è nella documentazione: Come trovare e sostituire testo in una cartella di documenti senza rompere la formattazione.

Perché questo è un compito per uno strumento e non per il modello?

Perché il risultato deve essere verificabile. Quarant’documenti sono troppi per confrontarli a occhio, e un modello che “ha aggiornato tutti i contratti” non ti offre nulla da controllare. Uno strumento di ricerca‑e‑sostituzione ti fornisce un numero per file. I numeri costituiscono la traccia di audit: sai quali file sono cambiati, di quanto e quali non hanno avuto bisogno di modifiche.

Deve inoltre essere noioso nel modo giusto. Il nome dell’azienda in grassetto resta in grassetto, la tabella delle tariffe mantiene la sua griglia, le intestazioni conservano i loro stili. Il modello non riscrive mai il documento: il motore lo apre, sostituisce le parole e scrive una copia. Un avvertimento sul server 26.10.0: quella copia è scritta dal modello di editing HTML del motore, e un footer di Word non viene trasferito. Un contratto che indica il fornitore nel suo footer richiede il round‑trip HTML paginato; la FAQ elenca cosa conserva un documento Word.

Cosa vede l’agente

Catturato da GroupDocs.Editor.Mcp 26.10.0 su un piccolo set sintetico: un accordo di servizi, un NDA, una lettera di benvenuto, un budget a tre fogli e una presentazione a tre slide.

-> 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'

Il rapporto dell’agente si scrive da solo: sei nell’accordo, una nel NDA, nessuna nella lettera di benvenuto, una nel riepilogo del budget, una nella prima slide.

Il ciclo

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

Due abitudini rendono il ciclo affidabile. Usa wholeWord: true per i nomi, così “ACME Corp” non corrisponde all’interno di “ACME Corporation Holdings”. E chiedi all’agente di elencare i file con zero corrispondenze, perché uno zero in un file che ti aspettavi fosse modificato è l’unica cosa che merita un secondo sguardo.

Controllare il batch prima di sostituire qualsiasi cosa

Le copie modificate rimangono accanto agli originali finché non decidi diversamente, ed è il momento di verificare. Tre controlli economici catturano quasi tutti i problemi. Confronta i conteggi per file con le tue aspettative: un accordo che cita il fornitore in ogni pagina non dovrebbe segnalare una sola occorrenza. Non fare affidamento sul rieseguire la stessa sostituzione: una frase divisa tra formattazioni viene persa anche al secondo passaggio, e “found no matches” sembrerebbe un tutto a posto. Chiedi all’agente di eseguire extract_html su ogni copia modificata; l’anteprima in testo semplice unisce le run di formattazione, così un residuo “ACME Corp” appare lì. Varianti ortografiche (“Acme Corp.” con punto finale, “ACME Corporation”) meritano una passata dedicata con matchCase: false o un’espressione regolare. Infine apri un file modificato di ciascun tipo – un contratto, una cartella di lavoro e una presentazione – per confermare che la formattazione e il footer siano rimasti intatti. Solo allora sposta i file _edited sugli originali, o lascia che il tuo sistema di gestione documenti li versioni.

Modelli, maiuscole e formati nella stessa chiamata

La rinomina è il caso più comune, ma lo stesso strumento copre il resto della famiglia “rendere la terminologia coerente”. Nella stessa esecuzione di 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 accetta un’espressione regolare .NET, utile per aggiornare versioni o cambiare formati di data in una cartella. matchCase: false intercetta capitalizzazioni incoerenti. format: "pdf" modifica e converte in un unico passaggio, per la copia destinata all’altro lato.

Una nota per gli agenti di programmazione

Lo stesso schema funziona in un repository. Le note di rilascio in DOCX e le specifiche in XLSX sono invisibili a sed; Claude Code con questo server può aggiornare la stringa di versione in entrambi come parte del compito di rilascio. Inserisci la regola nelle istruzioni del progetto affinché l’agente usi lo strumento invece di provare a decomprimere i file 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.

Limiti onesti

  • La corrispondenza avviene all’interno di una singola run di formattazione. Nel nostro accordo, un settimo “ACME Corp”, con “ACME” in corsivo, non è stato sostituito, e il conteggio di sei lo ha evidenziato. Le frasi divise tra stili richiedono il round‑trip HTML.
  • Ogni risultato viene salvato nella radice della cartella di output come <name>_edited.<ext>, anche quando l’originale si trovava in una sottocartella. Nessun file viene sovrascritto: un nome già occupato riceve un numero (msa-northwind_edited (1).docx), quindi fornisci outputName quando i nomi potrebbero collidere.
  • Sul server 26.10.0 la copia modificata di un documento Word perde il footer e i controlli di contenuto vengono appiattiti in testo semplice. Controlla i documenti che contengono il vecchio nome nel footer.
  • Fogli di calcolo e presentazioni sono modificati un foglio o una slide per chiamata. In modalità valutazione solo le prime due possono essere modificate, e il server lo segnala: “Evaluation mode edits only the first 2 slides of a presentation; slide 3 is beyond them.”
  • La modalità valutazione aggiunge anche una riga di banner a ogni output, e un PDF più lungo di due pagine viene rifiutato.

FAQ

Può sostituire testo in Word, Excel e PowerPoint in un unico batch?
Sì. L’agente chiama lo stesso strumento per ogni file e aggiunge worksheet o slide per cartelle di lavoro e presentazioni.

Come faccio a sapere quali file sono stati modificati?
Ogni chiamata restituisce il conteggio, e i file senza corrispondenze non vengono scritti affatto. Chiedi all’agente una tabella per file.

Gli originali verranno sovrascritti?
No. Ogni modifica scrive un nuovo file; gli originali rimangono invariati finché non li sostituisci manualmente.

Approfondisci