Il budget ha tre fogli di lavoro e il reparto finanziario vuole modificare due celle nel secondo. Consegnare l’intero workbook a un agente IA per “aggiornare Q3” lo invita a ricostruire tutti e tre. Con il server GroupDocs.Editor MCP in esecuzione locale, Claude, Cursor o Copilot estraggono solo quel foglio come HTML modificabile, apportano le modifiche richieste e lo salvano in una copia del workbook originale, così gli altri fogli non passano mai attraverso il modello. Anche le diapositive funzionano allo stesso modo:

In budget.xlsx, sul foglio 2 (Q3), imposta Travel a 12.500 e rinomina Training in “Training (external)”. Lascia intatti gli altri fogli.

La versione passo‑passo è nella documentazione: Come modificare un foglio di lavoro o una diapositiva e reinserirlo nell’originale.

Perché non consegnare all’agente l’intero file?

Perché un modello non può contenere un workbook. Può contenere solo testo. Ogni foglio che gli fornisci è un foglio che potrebbe “gentilmente” riformulare: numeri riformattati, una formula trasformata nel suo valore, una colonna non compresa eliminata. Anche quando non si verificano errori, non puoi saperlo dalla risposta. La soluzione è limitare il campo d’azione: fornisci all’agente esattamente la parte che gli è stata chiesta di modificare e tieni il resto fuori dalla sua portata.

L’HTML è la forma giusta per quella parte. Tabelle, stili, caratteri e immagini vi sopravvivono, i modelli lo leggono e lo scrivono bene, e si mappa nuovamente sulla struttura originale. Il testo semplice perderebbe la formattazione; il raw .xlsx XML è un labirinto che nessun agente dovrebbe modificare.

Il round‑trip

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+

Cosa ha restituito il server

Catturato da GroupDocs.Editor.Mcp 26.10.0 su un budget sintetico:

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

Aprire il risultato conferma il campo d’azione: su Q3, Travel è 12500 e la riga legge “Training (external)”; Hosting e Support rimangono invariati; Summary e Q4 sono come prima. Il budget.xlsx originale non è stato modificato.

Gli strumenti gestiscono fogli e diapositive per numero, non per nome; get_document_info restituisce il conteggio, ed è per questo che il prompt dice “worksheet 2 (Q3)”. La risposta di estrazione contiene un’anteprima in testo semplice, così l’agente può verificare di avere il foglio corretto prima di modificare, e una riga “Next:” che indica quale chiamata eseguire dopo. Gli agenti seguono bene questi suggerimenti. Per una diapositiva, l’anteprima può iniziare con il testo segnaposto del master (“Click to edit Master title style”), quindi l’agente dovrebbe controllare l’HTML stesso.

Diapositive e la regola d’oro per le presentazioni

La stessa coppia funziona su un deck: extract_html con "slide": 2, modifica, save_from_html con "slide": 2 e il documento originale come sourceFile. Nel nostro test, la diapositiva 2 di un deck di tre diapositive è stata esportata come HTML, “12 percent” è diventato “14 percent”, ed è tornata come review-revised.pptx con le diapositive 1 e 3 intatte.

Per PowerPoint il sourceFile non è opzionale. L’HTML da solo non contiene il master della diapositiva, e il server lo segnala invece di produrre un deck rotto:

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

Il messaggio indica l’argomento mancante, così l’agente corregge la chiamata autonomamente.

Quando il round‑trip supera trova‑e‑sostituisci

replace_text è il percorso più breve per una parola o un nome. Il round‑trip è per tutto il resto: modificare più celle contemporaneamente, riformulare un’etichetta e un numero insieme, ristrutturare una tabella su una diapositiva, o una frase che replace_text non può vedere perché è divisa in due run di formattazione. È anche il modo in cui l’agente legge una parte prima di decidere cosa cambiare.

Leggere prima di scrivere

La prima metà del round‑trip è utile da sola. Un agente a cui viene chiesto “cosa è previsto per travel in Q3 e chi ne è responsabile?” può estrarre il foglio Q3 e rispondere dall’HTML senza toccare nulla, e un agente che sta per modificare dovrebbe fare esattamente questo prima: leggere la parte, dichiarare la modifica che intende apportare, poi scrivere. Inserisci quest’ordine nelle istruzioni del tuo progetto affinché diventi il comportamento predefinito:

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.

L’ultima riga è la più importante. “Ho cambiato Travel da 9000 a 12500 e rinominato Training su Q3” è una risposta che un revisore può verificare contro il file in pochi secondi.

Limiti onesti

  • La modalità valutazione modifica solo i primi due fogli o diapositive, e il server rifiuta il terzo con una motivazione: “Evaluation mode edits only the first 2 visible worksheets of a workbook; worksheet 3 is beyond them.”
  • I salvataggi non licenziati sono bozze: il foglio modificato ottiene una riga banner in cima e il workbook aggiunge un foglio “Evaluation Warning”.
  • L’HTML estratto in un’esecuzione non licenziata inizia con la stessa riga di valutazione (l’anteprima sopra la mostra), quindi l’agente deve modificare le celle, non quella riga.
  • I numeri di foglio e diapositiva partono da 1, includendo quelli nascosti. Una diapositiva nascosta richiede showHidden: true; un foglio nascosto è rifiutato indipendentemente da showHidden, quindi è necessario renderlo visibile nel workbook prima.

FAQ

Modificare un foglio influisce sugli altri?
No. L’HTML modificato sostituisce solo il foglio che hai indicato, in una copia dell’originale; il resto viene riportato dal file sorgente.

Posso fare lo stesso con le diapositive PowerPoint?
Sì, usando "slide" al posto di "worksheet" e passando l’originale come sourceFile, come richiede l’output PowerPoint.

Dove viene salvato il risultato?
In un nuovo file nella cartella di storage, budget-q3-revised.xlsx in questo caso perché abbiamo specificato outputName; l’originale rimane intatto.

Approfondisci