De begroting heeft drie werkbladen, en de financiële afdeling wil twee cellen wijzigen op het tweede. Het hele werkboek aan een AI‑agent geven om “Q3 bij te werken” nodigt de agent uit om alle drie opnieuw te bouwen. Met de GroupDocs.Editor MCP‑server die lokaal draait, halen Claude, Cursor of Copilot alleen dat werkblad op als bewerkbare HTML, voeren de gevraagde wijzigingen uit, en slaan het terug op in een kopie van het originele werkboek, zodat de andere bladen nooit door het model gaan. Dia’s werken op dezelfde manier:

In budget.xlsx, op werkblad 2 (Q3), stel Travel in op 12.500 en hernoem Training naar “Training (external)”. Laat de andere bladen ongemoeid.

De stap‑voor‑stap versie staat in de documentatie: How to edit one worksheet or slide and splice it back into the original.

Waarom de agent niet het hele bestand geven?

Omdat een model geen werkboek kan bevatten. Het kan alleen tekst bevatten. Elk blad dat je het geeft, is een blad dat het “behulpzaam” kan herformuleren: getallen opnieuw opgemaakt, een formule omgezet naar de waarde, een kolom die het niet begreep weggelaten. Zelfs wanneer er niets misgaat, kun je dat niet uit het antwoord opmaken. De oplossing is scope: geef de agent precies het deel dat hij moet wijzigen en houd de rest buiten bereik.

HTML is de juiste vorm voor dat deel. Tabellen, stijlen, lettertypen en afbeeldingen blijven erin behouden, modellen lezen en schrijven het goed, en het mapt terug naar de originele structuur. Platte tekst zou de opmaak verliezen; de ruwe .xlsx‑XML is een doolhof dat geen agent zou moeten bewerken.

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

Wat de server teruggeeft

Captured from GroupDocs.Editor.Mcp 26.10.0 against a synthetic budget:

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

Het openen van het resultaat bevestigt de scope: op Q3 is Travel 12500 en de rij luidt “Training (external)”; Hosting en Support zijn ongewijzigd; Summary en Q4 zijn zoals ze waren. Het originele budget.xlsx is niet aangepast.

De tools adresseren werkbladen en dia’s op nummer, niet op naam; get_document_info geeft het aantal terug, daarom staat in de prompt “worksheet 2 (Q3)”. Het extract‑antwoord bevat een preview in platte tekst, zodat de agent kan controleren of het het juiste werkblad heeft voordat hij iets bewerkt, en een “Next:”‑regel die aangeeft welke oproep daarna volgt. Agenten volgen die hints goed. Voor een dia kan de preview beginnen met de placeholder‑tekst van de master (“Click to edit Master title style”), dus moet de agent de HTML zelf controleren.

Dia’s, en de enige regel voor presentaties

Hetzelfde paar werkt op een deck: extract_html met "slide": 2, bewerken, save_from_html met "slide": 2 en het origineel als sourceFile. In onze run ging slide 2 van een drie‑dia’s review‑deck als HTML uit, “12 percent” werd “14 percent”, en kwam terug als review-revised.pptx met dia’s 1 en 3 intact.

Voor PowerPoint is sourceFile niet optioneel. HTML alleen bevat geen slide‑master, en de server geeft dat aan in plaats van een kapotte deck te produceren:

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

Het bericht noemt het ontbrekende argument, zodat een agent de oproep zelf corrigeert.

Wanneer de round‑trip beter is dan zoeken‑en‑vervangen

replace_text is de kortere weg voor een woord of een naam. De round‑trip is voor alles behalve dat: meerdere cellen tegelijk wijzigen, een label en een getal samen herformuleren, een tabel op een dia herstructureren, of een frase die replace_text niet ziet omdat die over twee opmaak‑runs is verdeeld. Het is ook hoe de agent een deel leest voordat hij beslist wat hij moet wijzigen.

Lezen vóór schrijven

De eerste helft van de round‑trip is op zichzelf al nuttig. Een agent die wordt gevraagd “wat is er gepland voor travel in Q3, en wie is de eigenaar?” kan het Q3‑blad extraheren en uit de HTML antwoorden zonder iets aan te raken, en een agent die op het punt staat te bewerken, moet dat eerst doen: het deel lezen, de beoogde wijziging aangeven, dan schrijven. Zet die volgorde in je projectinstructies zodat het de standaard wordt:

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.

De laatste regel is het belangrijkst. “I changed Travel from 9000 to 12500 and renamed Training on Q3” is een antwoord dat een reviewer in enkele seconden tegen het bestand kan controleren.

Eerlijke beperkingen

  • Evaluatiemodus bewerkt alleen de eerste twee werkbladen of dia’s, en de server weigert de derde met een reden: “Evaluation mode edits only the first 2 visible worksheets of a workbook; worksheet 3 is beyond them.”
  • Niet‑gelicentieerde opslagen zijn concepten: het bewerkte blad krijgt een banner‑rij bovenaan en het werkboek krijgt een extra “Evaluation Warning” werkblad.
  • De geëxtraheerde HTML van een niet‑gelicentieerde run begint met dezelfde evaluatielijn (de preview hierboven toont die), dus moet de agent de cellen bewerken, niet die regel.
  • Werkblad‑ en dianummers beginnen bij 1, verborgen worden meegeteld. Een verborgen dia heeft showHidden: true nodig; een verborgen werkblad wordt geweigerd ongeacht wat showHidden zegt, dus eerst zichtbaar maken in het werkboek.

Veelgestelde vragen

Verandert het bewerken van één blad de andere?
Nee. De bewerkte HTML vervangt alleen het werkblad dat je noemt, in een kopie van het origineel; de rest wordt overgenomen uit het bronbestand.

Kan ik dit doen met PowerPoint‑dia’s?
Ja, met "slide" in plaats van "worksheet", en het origineel meegegeven als sourceFile, wat vereist is voor PowerPoint‑output.

Waar komt het resultaat terecht?
In een nieuw bestand in de opslagmap, budget-q3-revised.xlsx hier omdat we outputName hebben opgegeven; het origineel blijft onaangeroerd.

Ga dieper