Wordový formulář s textovými poli, rozbalovacím seznamem oddělení a zaškrtávacím políčkem kodexu chování a tabulkou se třiceti novými zaměstnanci: to je ráno plné kopírování a vkládání, nebo jeden prompt. Se serverem GroupDocs.Editor MCP běžícím lokálně, Claude, Cursor nebo Copilot nejprve požádají formulář, jaká pole má, pak vyplní jednu kopii na řádek a uloží každou pod jménem osoby. Rozvržení formuláře zůstane nedotčeno a jakákoli hodnota, která nemá odpovídající pole, je nahlášena místo toho, aby byla tiše zahozena:

Přečti new-employee-form.docx, pak vyplň jednu kopii na řádek souboru new-hires.csv a pojmenuj každý soubor podle zaměstnance.

Krok‑za‑krokem verze je v dokumentaci: Jak vyplnit pole Word formuláře z dat pomocí AI agenta.

Kdo čte tabulku?

Agent to dělá, a je dobré být v tom upřímný. Server Editor pracuje s Wordovým formulářem; nečte váš CSV ani sešit. Agent čte řádky svými vlastními nástroji pro soubory, nebo je vložíte, a pak provede jedno volání fill_form_fields na řádek s outputName pro každou osobu. Toto rozdělení je výhodou: data nikdy nemusí být ve formátu, který server rozumí, a agent je může během cesty vyčistit (rozdělit celé jméno, normalizovat datum), než je vloží do formuláře.

Nejprve se zeptej formuláře

Názvy polí ve Wordových formulářích často neodpovídají popisku na stránce. Popisek říká „Full name:“, zatímco pole může být pojmenováno FullName, Text1 nebo Name_Employee. Hádaní je důvod, proč jsou formuláře často napůl prázdné. get_form_fields vrací skutečné názvy, typy a aktuální hodnoty. Zachyceno z GroupDocs.Editor.Mcp 26.10.0 proti syntetickému onboardingovému formuláři (zkrácený výstup):

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

Rozbalovací seznam přichází se svými možnostmi, takže agent může namapovat „finance“ v tabulce na přesný záznam „Finance“ místo vymýšlení šestého oddělení.

Pak vyplň jeden řádek

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

Tabulka měla sloupec s telefonem, pro který formulář žádné pole nemá. Server vyplnil pět existujících polí a označil to, které chybí. Při načtení vyplněné kopie zpět pomocí get_form_fields jsou hodnoty na svém místě, zahrnuté "selected": "Finance" a "Agree": true, a Newsletter zůstává nezaškrtnutý, protože řádek neřekl nic jiného.

Celá dávka

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

Tři instrukce dělají dávku spolehlivou: zavolat get_form_fields jednou a namapovat sloupce na názvy polí před prvním vyplněním; dát každému řádku vlastní outputName, protože jinak se kopie hromadí jako new-employee-form_edited.docx, new-employee-form_edited (1).docx a tak dále, bez jména kohokoli; a sesbírat řádky „Not found“ do jednoho reportu na konci místo zastavení při první chybě.

Prompt, který funguje na prvním řádku

Většina selhání dávky nastane na řádku jedna a pak se opakuje třicetkrát. Nejprve požádejte o suchý běh:

Přečti pole new-employee-form.docx a hlavičku new-hires.csv. Ukaž mi, který sloupec jde do kterého pole, a které sloupce nemají pole. Pak vyplň jen první řádek a zastav se.

Agent odpoví malou mapovací tabulkou, Name -> FullName, Dept -> Department, Phone -> (no field), a jedním vyplněným formulářem, který můžete otevřít. Pokud je pravopis oddělení nebo formát data špatný, uvidíte to hned, opravíte instrukci a pak požádáte o zbytek. Ten revizní krok stojí minutu a je rozdílem mezi třiceti správnými formuláři a třiceti formuláři, které je potřeba ručně kontrolovat.

Také vyřeší otázky, na které tabulka sama nedokáže odpovědět. Má prázdná buňka „Agree“ znamenat nezaškrtnuté, nebo má být řádek přeskočen? Má se „2026-12-01“ vložit do pole data tak, jak je napsáno, nebo jako „1 December 2026“? Agent bude následovat, co mu řeknete, ale musí to být explicitně řečeno.

Co dalšího nástroje pro formuláře zvládají

Textová, číselná a datová pole jsou vyplňována řetězci; zaškrtávací políčka přijímají "true" nebo "false"; rozbalovací seznamy přijímají jednu ze svých možností. format uloží vyplněnou kopii jako DOC, RTF nebo ODT místo DOCX; vyplněný formulář je vždy Word dokument, takže PDF pro nového zaměstnance je samostatná konverze po té. Formulář chráněný heslem se otevírá pomocí password a zůstává chráněn. Vyplněná kopie je zapisována enginem pro pole formuláře, nikoli přes HTML, takže záhlaví, zápatí a čísla stránek zůstávají tak, jak byla. Nástroje čtou formuláře ve formátech DOCX, DOC, DOCM, DOT, DOTX, RTF a ODT.

Upřímná omezení

  • Pouze Wordové formuláře a pouze legacy pole: textová, zaškrtávací a rozbalovací pole, která Word vkládá z Developer → Legacy Tools. Obsahové ovládací prvky nejsou v seznamu ani nevyplňovány. PDF formuláře (AcroForms) nejsou pro tento server v rozsahu.
  • Server nečte tabulku; agent dodává hodnoty, takže zkontrolujte jeho mapování sloupců na prvním řádku, než ho necháte projít všemi.
  • Jedno volání vyplní jeden formulář. Dávka třiceti je třicet volání.
  • Režim hodnocení přidává bannerový řádek na vrchol každé vyplněné kopie, takže nelicencovaný výstup je koncept, ne něco, co by se mělo posílat novým zaměstnancům.

FAQ

Jak agent zná názvy polí?
Ptá se: get_form_fields vrací název každého pole, typ a aktuální hodnotu a možnosti každého rozbalovacího seznamu.

Co se stane s hodnotou, pro kterou formulář nemá pole?
Je přeskočena a uvedena v odpovědi („Not found: Phone“), takže ji agent může nahlásit.

Je můj původní formulář změněn?
Ne. Každé vyplnění vytvoří nový soubor; šablona zůstane prázdná pro další řádek.

Jděte hlouběji