Een Word‑formulier met tekstvakken, een vervolgkeuzelijst voor afdelingen en een checkbox voor gedragscode, en een spreadsheet met dertig nieuwe medewerkers: dat is een ochtend vol knippen en plakken, of één prompt. Met de GroupDocs.Editor MCP‑server die lokaal draait, vraagt Claude, Cursor of Copilot eerst het formulier welke velden het heeft, vult vervolgens één kopie per rij in en slaat elke op onder de naam van de persoon. De lay‑out van het formulier blijft onaangetast, en elke waarde zonder overeenkomend veld wordt gerapporteerd in plaats van stilletjes te worden weggelaten:
Lees new‑employee‑form.docx, vul vervolgens één kopie per rij van new‑hires.csv in en noem elk bestand naar de werknemer.
De stap‑voor‑stap versie staat in de documentatie: Hoe Word‑formuliervelden vanuit gegevens in te vullen met een AI‑agent.
Wie leest de spreadsheet?
Dat doet de agent, en het is de moeite waard om daar duidelijk over te zijn. De Editor‑server werkt op het Word‑formulier; hij leest je CSV‑ of werkmap niet. De agent leest de rijen met zijn eigen bestands‑tools, of jij plakt ze, en maakt vervolgens één fill_form_fields‑aanroep per rij met een outputName per persoon. Die scheiding is een functie: de gegevens hoeven nooit in een formaat te zijn dat de server begrijpt, en de agent kan ze onderweg opschonen (een volledige naam splitsen, een datum normaliseren) voordat ze in het formulier terechtkomen.
Vraag het formulier eerst
Veldnamen in Word‑formulieren komen zelden overeen met wat het label op de pagina zegt. Het label leest “Full name:”, terwijl het veld FullName, Text1 of Name_Employee kan heten. Raden is hoe formulieren half leeg terugkomen. get_form_fields retourneert de echte namen, de types en de huidige waarden. Vastgelegd van GroupDocs.Editor.Mcp 26.10.0 tegen een synthetisch onboarding‑formulier (output ingekort):
-> get_form_fields {"file":{"filePath":"new-employee-form.docx"}}
<- { "count": 6, "fields": [
{ "name": "FullName", "type": "Text", "value": "" },
{ "name": "Email", "type": "Text", "value": "" },
{ "name": "StartDate", "type": "Text", "value": "" },
{ "name": "Department", "type": "DropDown",
"value": { "options": [ "Engineering", "Finance", "Sales",
"Operations" ], "selected": "Engineering" } },
{ "name": "Agree", "type": "CheckBox", "value": false },
{ "name": "Newsletter", "type": "CheckBox", "value": false } ] }
De vervolgkeuzelijst wordt geleverd met zijn opties, zodat de agent “finance” in de spreadsheet kan koppelen aan de exacte invoer “Finance” in plaats van een zesde afdeling uit te vinden.
Vul dan één rij in
-> fill_form_fields {"file":{"filePath":"new-employee-form.docx"},
"values":{"FullName":"Amara Okafor",
"Email":"amara.okafor@northwind.example",
"StartDate":"2026-12-01","Department":"Finance",
"Agree":"true","Phone":"+31 10 555 0100"}}
<- Updated 5 field(s) in 'new-employee-form.docx': FullName, Email,
StartDate, Department, Agree.
Not found: Phone. Call get_form_fields for the exact names.
Saved to: …/new-employee-form_edited.docx
De spreadsheet had een telefoonkolom waarvoor het formulier geen veld heeft. De server vulde de vijf bestaande velden in en noemde het veld dat niet bestaat. Het teruglezen van de ingevulde kopie met get_form_fields toont de waarden op hun plaats, inclusief "selected": "Finance" en "Agree": true, en Newsletter blijft uitgevinkt omdat de rij niets anders aangaf.
De volledige batch
new-hires.csv (agent reads it) new-employee-form.docx
Amara Okafor, Finance, ... ---+
Tomas Varga, Sales, ... ---+ get_form_fields (once)
... | -> FullName, Email, StartDate,
| Department, Agree, ...
v
fill_form_fields {"values":{...row...},
"outputName":"form-amara-okafor.docx"} x one per row
-> "Updated 5 field(s) ... Not found: Phone"
-> form-amara-okafor.docx, form-tomas-varga.docx, ...
Drie instructies maken de batch betrouwbaar: roep get_form_fields één keer aan en koppel kolommen aan veldnamen vóór de eerste invulling; geef elke rij zijn eigen outputName, want anders stapelen de kopieën zich op als new-employee-form_edited.docx, new-employee-form_edited (1).docx enzovoort, zonder iemands naam; en verzamel de “Not found”-regels in één rapport aan het einde in plaats van te stoppen bij de eerste.
Een prompt die werkt op de eerste rij
De meeste batch‑fouten gebeuren op rij één en herhalen zich vervolgens dertig keer. Vraag eerst om een proefrun:
Lees de velden van new‑employee‑form.docx en de header van new‑hires.csv. Toon me welke kolom in welk veld gaat, en welke kolommen geen veld hebben. Vul vervolgens alleen de eerste rij in en stop.
De agent beantwoordt met een kleine koppelings‑tabel, Name -> FullName, Dept -> Department, Phone -> (no field), en één ingevuld formulier dat je kunt openen. Als de spelling van de afdeling of het datumformaat onjuist is, zie je het één keer, corrigeer je de instructie, en vraag je vervolgens om de rest. Die beoordelingsstap kost één minuut en is het verschil tussen dertig correcte formulieren en dertig formulieren die handmatig gecontroleerd moeten worden.
Het beantwoordt ook de vragen die de spreadsheet zelf niet kan beantwoorden. Moet een lege “Agree”-cel betekenen dat het vakje niet is aangevinkt, of moet de rij worden overgeslagen? Gaat “2026-12-01” in het datumveld als getypt, of als “1 december 2026”? De agent volgt wat jij zegt, maar moet het wel verteld krijgen.
Wat de formulier‑tools nog meer aankunnen
Tekst‑, getal‑ en datumvelden worden ingevuld met strings; checkboxen nemen "true" of "false"; vervolgkeuzelijsten nemen een van hun opties. format slaat de ingevulde kopie op als DOC, RTF of ODT in plaats van DOCX; een ingevuld formulier is altijd een Word‑document, dus een PDF voor de nieuwe medewerker is een aparte conversie daarna. Een met wachtwoord beschermd formulier wordt geopend met password en blijft beschermd. De ingevulde kopie wordt geschreven door de form‑field engine in plaats van via HTML, zodat kop‑ en voetteksten en paginanummers behouden blijven. De tools lezen DOCX, DOC, DOCM, DOT, DOTX, RTF en ODT‑formulieren.
Eerlijke beperkingen
- Alleen Word‑formulieren, en alleen legacy‑formuliervelden: de tekst‑, checkbox‑ en vervolgkeuzelijsten die Word invoegt via Developer → Legacy Tools. Content‑controls worden niet vermeld of ingevuld. PDF‑formulieren (AcroForms) vallen buiten de scope van deze server.
- De server leest de spreadsheet niet; de agent levert de waarden aan, dus controleer de kolomkoppeling op de eerste rij voordat je hem door alle rijen laat lopen.
- Eén aanroep vult één formulier. Een batch van dertig is dertig aanroepen.
- Evaluatiemodus voegt een bannerregel toe bovenaan elke ingevulde kopie, zodat niet‑gelicentieerde output een concept is, niet iets om naar nieuwe medewerkers te sturen.
Veelgestelde vragen
Hoe weet de agent de veldnamen?
Hij vraagt: get_form_fields retourneert de naam, het type en de huidige waarde van elk veld, en de opties van elke vervolgkeuzelijst.
Wat gebeurt er met een waarde waarvoor het formulier geen veld heeft?
Deze wordt overgeslagen en genoemd in de respons (“Not found: Phone”), zodat de agent het kan rapporteren.
Wordt mijn originele formulier gewijzigd?
Nee. Elke invulling schrijft een nieuw bestand; de sjabloon blijft leeg voor de volgende rij.
Ga dieper
- Documentatie, canonieke handleiding: Hoe Word‑formuliervelden vanuit gegevens in te vullen met een AI‑agent
- Documentatie‑hub: GroupDocs.Editor MCP Server
- GroupDocs.Editor MCP productpagina — één‑klik installatie voor VS Code en Cursor, configuraties voor elke andere client
- Begin hier: Waarom een AI‑agent je document niet moet herschrijven om drie woorden te wijzigen
- Gerelateerd: Een partij hernoemen in 40 contracten zonder de opmaak aan te passen
- Gerelateerd: Een werkblad bewerken, de werkmap behouden: chirurgische bewerkingen met een HTML‑rondreis
- Gerelateerd: Een PDF bewerken met een AI‑agent? Zet het eerst lokaal om naar Word
- On‑premise en beveiligingsmodel: 3 architecturen voor AI‑documentverwerking, en degene die bestanden binnen je netwerk houdt
- Vragen: GroupDocs Editor forum
- Bron: GroupDocs.Editor.Mcp op GitHub · NuGet‑pakket