A Word フォームにテキストボックス、部署のドロップダウン、行動規範チェックボックスがあり、30 人の新入社員が記載されたスプレッドシートがあります。これはコピー&ペーストの朝、あるいは 1 つのプロンプトです。ローカルで GroupDocs.Editor MCP サーバーを実行し、Claude、Cursor、または Copilot がまずフォームにどのフィールドがあるかを問い合わせ、次に各行ごとに 1 つのコピーを埋め込み、各人の名前で保存します。フォームのレイアウトはそのままで、対応するフィールドがない値は黙って削除されるのではなく、報告されます:

new-employee-form.docx を読み取り、new-hires.csv の各行ごとに 1 つずつ埋め込み、各ファイルを従業員の名前で命名してください。

ステップバイステップのバージョンはドキュメントにあります: データから Word フォームフィールドを埋める方法(AI エージェント使用).

スプレッドシートを読むのは誰ですか?

エージェントが行います。はっきり言っておく価値があります。Editor サーバーは Word フォーム上で動作し、CSV やブックは読み取りません。エージェントは独自のファイルツールで行を読み取るか、あるいは貼り付けて、各行ごとに fill_form_fields 呼び出しを行い、各人物に対して outputName を設定します。この分離は機能です。データはサーバーが理解できる形式である必要はなく、エージェントはフォームに入れる前に(フルネームを分割したり、日付を正規化したり)データをクリーンアップできます。

まずフォームに問い合わせる

Word フォームのフィールド名は、ページ上のラベルと一致することはほとんどありません。ラベルは「Full name:」と表示されますが、フィールド名は FullName、Text1、または Name_Employee かもしれません。推測すると、フォームが半分空の状態で戻ってきます。get_form_fields は実際の名前、型、現在の値を返します。以下は GroupDocs.Editor.Mcp 26.10.0 を合成オンボーディングフォームに対して取得したものです(出力を短縮)。

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

ドロップダウンにはオプションが含まれているため、エージェントはスプレッドシートの「finance」を正確なエントリ「Finance」にマッピングでき、6 番目の部署を作り出すことはありません。

次に 1 行ずつ埋める

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

スプレッドシートには電話列がありましたが、フォームには対応するフィールドがありませんでした。サーバーは存在する 5 つのフィールドを埋め、存在しないものは名前だけを付けました。get_form_fields で埋められたコピーを再取得すると、値が正しく設定されていることが分かります("selected": "Finance" と "Agree": true が含まれ、Newsletter は行に別の指示がなかったため未チェックのままです)。

バッチ全体

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

バッチを確実に動作させるための 3 つの指示があります。最初の埋め込みの前に get_form_fields を一度呼び出し、列をフィールド名にマッピングすること。各行に固有の outputName を付けること。そうしないとコピーが new-employee-form_edited.docx、new-employee-form_edited (1).docx などと積み重なり、誰の名前も付かなくなります。さらに、“Not found” 行をすべて最後にまとめてレポートし、最初のエラーで停止しないようにします。

最初の行で機能するプロンプト

バッチの失敗の多くは最初の行で起こり、30 回繰り返されます。まずドライランを依頼しましょう:

new-employee-form.docx のフィールドと new-hires.csv のヘッダーを読み取ってください。どの列がどのフィールドに対応するか、どの列にフィールドがないかを示してください。その後、最初の行だけを埋めて停止してください。

エージェントは小さなマッピング表(Name -> FullName、Dept -> Department、Phone -> (no field))と、開くことのできる 1 つの埋められたフォームで回答します。部署名の綴りや日付形式が間違っている場合、最初に一度だけそれが分かり、指示を修正してから残りを依頼します。このレビュー手順は 1 分程度で、正しい 30 件のフォームと手作業で確認が必要な 30 件のフォームの差を生みます。

また、スプレッドシートだけでは答えられない質問も解決します。空の「Agree」セルは未チェックとみなすべきか、行自体をスキップすべきか?「2026-12-01」をそのまま日付フィールドに入力するか、あるいは「2026 年 12 月 1 日」と変換すべきか?エージェントは指示された通りに動作しますが、明示的に伝える必要があります。

フォームツールが扱えるその他のこと

テキスト、数値、日付フィールドは文字列で埋められます。チェックボックスは "true" または "false" を受け取り、ドロップダウンはそのオプションのいずれかを受け取ります。format を使用すると、埋められたコピーを DOC、RTF、または ODT として保存でき、DOCX ではなくなります。埋められたフォームは常に Word 文書であるため、新入社員向けの PDF は別途変換が必要です。パスワード保護されたフォームは password で開かれ、保護されたままです。埋められたコピーは HTML ではなくフォームフィールドエンジンによって書き込まれるため、ヘッダー、フッター、ページ番号は元通りに保持されます。ツールは DOCX、DOC、DOCM、DOT、DOTX、RTF、ODT フォームを読み取ります。

正直な制限

  • Word フォームのみ、かつレガシーフィールドのみ:Word が Developer → Legacy Tools から挿入するテキスト、チェックボックス、ドロップダウンフィールドです。コンテンツコントロールは一覧に表示されず、埋められません。PDF フォーム(AcroForms)はこのサーバーの対象外です。
  • サーバーはスプレッドシートを読み取りません。エージェントが値を提供するため、すべての行を処理させる前に最初の行で列マッピングを確認してください。
  • 1 回の呼び出しで 1 つのフォームを埋めます。30 件のバッチは 30 回の呼び出しです。
  • 評価モードでは、埋められたコピーの先頭にバナー行が追加されるため、未ライセンスの出力はドラフトとなり、新入社員に送るものではありません。

よくある質問

エージェントはどのようにフィールド名を知りますか?
エージェントは get_form_fields を呼び出し、各フィールドの名前、型、現在の値、そしてすべてのドロップダウンのオプションを取得します。

フォームに対応するフィールドがない値はどうなりますか?
その値はスキップされ、レスポンスに「Not found: Phone」として記載されます。エージェントはそれを報告できます。

元のフォームは変更されますか?
いいえ。各埋め込みは新しいファイルとして書き出され、テンプレートは次の行のために空のままです。

さらに深く掘り下げる