IRONSOFTWAREHOME
IRONWORDの使用方法

ASP.NET Coreでワードファイルをインポート&エクスポートする

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

IronWordライブラリを使用して、プレースホルダーテキストフィールドを含むテーブルベースのレイアウトを構築することで、C#で入力可能なWordフォームテンプレートを作成します。 その後、プログラムによって実際のデータを入力し、必要に応じてPDF形式に変換することができます。

構造化されたフォームを通して情報を収集することは、人事部門が求人応募を処理する場合から、医療機関が患者情報を収集する場合まで、あらゆる業界におけるデータ収集に不可欠です。 入力可能なフォームテンプレートをプログラムで作成することで、時間を節約し、 .NETアプリケーション内のWord文書全体で一貫性を確保できます。 このチュートリアルでは、C#とIronWord(Microsoft Officeに依存せずにDOCXファイルを生成・編集するため for .NET Wordライブラリ)を使用して、Word文書に記入可能なフォームテンプレートを作成する方法を示します。 最後には、データ入力が可能な完全な求人応募フォームのテンプレートが完成し、Word文書をPDF形式に変換して配布することもできます。

Word文書で記入可能なフォーム テンプレートとは

記入可能なフォームテンプレートは、ユーザーがテキストやその他のデータを入力できるように指定された領域で設計された構造化されたWord文書です。 これらのテンプレートは、テーブルとプレースホルダーテキストフィールドを使用して整理されたレイアウトを作成し、プログラムによって、またはインタラクティブなフォームを介して手動で実際のデータを入力できます。 .NETアプリケーションを扱う場合、 IronWordのようなライブラリを、PDF生成用のIronPDFなどのIron Software製品と組み合わせて使用​​することで、完全なドキュメント自動化ソリューションを構築できます。

Microsoft Wordは、プレーンテキストコンテンツコントロール、リッチテキストコンテンツコントロール、チェックボックスコンテンツコントロール、ドロップダウンリストコンテンツコントロール、コンボボックスコンテンツコントロール、日付ピッカーコンテンツコントロール、画像コンテンツコントロールなど、インタラクティブフィールド用のさまざまなコンテンツコントロールをサポートしています。 ネイティブのフォームフィールドはインタラクティブなフォームを作成するが、プレースホルダーテキストを使用したテンプレートベースのアプローチは、Webアプリケーションやサーバー環境におけるドキュメント生成において、より高い柔軟性を提供する。 この柔軟性は、Word文書に加えてPDFの電子署名やその他の文書形式を扱うEnterpriseワークフローを構築する際に特に役立ちます。

一般的な用途は以下のとおりです:

  • 記入欄のある求人申込書や入社フォーム
  • データ収集のための顧客登録とフィードバック調査
  • テキストボックスとチェックボックスコントロールを備えた医療情報入力および同意書
  • 可変テキストフィールド付き契約書テンプレート
  • PDF文書にエクスポートできる注文書と請求書

これらのフォームは構造化されているため、自動処理に最適です。 テンプレートベースのフォーム生成機能を使用すると、単一のマスターテンプレートから数十または数百もの一貫性のあるドキュメントを生成できるため、エラーを減らし、反復的な手作業をなくすことができます。 このアプローチは、単純な単一セクションのフォームから、条件付きロジック、検証ルール、分岐構造を備えた複数ページの文書まで、あらゆる規模の文書に対応できます。

NuGet経由でIronWordをインストールするにはどうすればよいですか?

IronWordを使い始めるには、新しい.NETコンソールアプリケーションを作成し、パッケージをインストールしてください。 IronWordは、 .NET CLIを使用してIronWordNuGetインストールできます。

dotnet new console -n WordFormTemplate
cd WordFormTemplate
dotnet add package IronWord
SHELL

または、Visual Studio のNuGetパッケージ マネージャーで"IronWord"を検索してインストールすることもできます。こ for .NET Word ライブラリは、システムに Microsoft Office や Word Interop がインストールされていなくても動作するため、Office が利用できないサーバー側やクラウド環境での展開に適しています。

Visual Studio の NuGet パッケージ マネージャーウィンドウに表示されている IronWord パッケージの検索結果とインストールインターフェース

インストール後、API呼び出しを行う前にライセンスキーを追加してください。 IronWordのライセンスページから無料トライアルキーを入手するか、コードに直接キーを設定できます。

using IronWord;

License.LicenseKey = "YOUR-LICENSE-KEY";

パッケージをインストールしてライセンスを取得すれば、プログラムを使ってフォームテンプレートを作成する準備が整います。

C#での入力フォームテンプレートの作成方法

表とプレースホルダーを使ってフォームを構成するにはどうすれば良いですか?

表は、適切な表セル配置によって、整理されたフォームレイアウトの基盤となります。 ドキュメントオブジェクトは、Word文書に表やフォームフィールドを追加するために使用されます。 以下のコード例は、IronWordのドキュメントAPIを使用して、ラベルと入力プレースホルダーを含む基本的なフォーム構造を作成する方法を示しています。

using IronWord;
using IronWord.Models;

// Apply your license key
License.LicenseKey = "YOUR-LICENSE-KEY";

// Create a new document instance
WordDocument doc = new WordDocument();

// Create the form header
Paragraph header = new Paragraph();
var headerText = new IronWord.Models.TextContent("Job Application Form")
{
    Style = new TextStyle
    {
        TextFont = new Font() { FontFamily = "Arial", FontSize = 24 },
        IsBold = true,
        Color = new Color("#1a1a1a")
    }
};
header.AddText(headerText);
doc.AddParagraph(header);

// Add spacing paragraph
doc.AddParagraph(new Paragraph());

// Create a table for personal information section
Table personalInfoTable = new Table(4, 2);

// Set column labels and placeholder text fields
personalInfoTable.Rows[0].Cells[0].AddParagraph(new Paragraph(new IronWord.Models.TextContent("Full Name:")));
personalInfoTable.Rows[0].Cells[1].AddParagraph(new Paragraph(new IronWord.Models.TextContent("{FullName}")));

personalInfoTable.Rows[1].Cells[0].AddParagraph(new Paragraph(new IronWord.Models.TextContent("Email Address:")));
personalInfoTable.Rows[1].Cells[1].AddParagraph(new Paragraph(new IronWord.Models.TextContent("{Email}")));

personalInfoTable.Rows[2].Cells[0].AddParagraph(new Paragraph(new IronWord.Models.TextContent("Phone Number:")));
personalInfoTable.Rows[2].Cells[1].AddParagraph(new Paragraph(new IronWord.Models.TextContent("{Phone}")));

personalInfoTable.Rows[3].Cells[0].AddParagraph(new Paragraph(new IronWord.Models.TextContent("Date of Application:")));
personalInfoTable.Rows[3].Cells[1].AddParagraph(new Paragraph(new IronWord.Models.TextContent("{ApplicationDate}")));

doc.AddTable(personalInfoTable);

// Save the template to a file with descriptive name
doc.SaveAs("JobApplicationTemplate.docx");
Console.WriteLine("Form template created successfully!");

このコードは、WordDocument クラスを使用して新しいドキュメントインスタンスを作成し、Table クラスを使用して構造化されたフォームを構築します。 各行には、最初のセルにラベル、2番目のセルにプレースホルダ(中括弧で囲む)が含まれています。 TextContent クラスはプレーンテキストコンテンツを処理し、TextStyle はフォーマットを適用します。 プレースホルダー構文 {FieldName} は、後で実際のデータにテキストを置き換えるエリアを示します。 罫線、網掛け、列幅などの高度な書式設定オプションについては、 IronWordのドキュメントを参照してください。

Microsoft Word ドキュメントに、個人情報、職位の詳細、教育背景のフィールドがプレースホルダーテキストで埋められた完了した就職申込書

Microsoft Visual Studio デバッグコンソールに

複数セクションのフォームにおけるベストプラクティスとは?

以下のコード例は、複数のセクションを含む完全な求人応募フォームを作成する方法を示しています。 ヘルパーメソッドを使用すると、繰り返し作業を減らし、職歴や参考文献などの追加セクションをテンプレートに追加して簡単に拡張できます。

using IronWord;
using IronWord.Models;

License.LicenseKey = "YOUR-LICENSE-KEY";

// Create an empty document to start fresh
WordDocument doc = new WordDocument();

// Document title with rich text styling
Paragraph title = new Paragraph();
TextContent titleText = new TextContent("Employment Application Form");
titleText.Style = new TextStyle()
{
    TextFont = new Font() { FontFamily = "Arial", FontSize = 28 },
    IsBold = true
};
// Center the paragraph
title.Alignment = IronWord.Models.Enums.TextAlignment.Center;
title.AddText(titleText);
doc.AddParagraph(title);
doc.AddParagraph(new Paragraph());

// Section 1: Personal Information with text box style fields
AddSectionHeader(doc, "Personal Information");

Table personalTable = new Table(5, 2);
SetFormRow(personalTable, 0, "Full Name:", "{FullName}");
SetFormRow(personalTable, 1, "Email:", "{Email}");
SetFormRow(personalTable, 2, "Phone:", "{Phone}");
SetFormRow(personalTable, 3, "Address:", "{Address}");
SetFormRow(personalTable, 4, "Date of Birth:", "{DOB}");
doc.AddTable(personalTable);
doc.AddParagraph(new Paragraph());

// Section 2: Position Details
AddSectionHeader(doc, "Position Details");

Table positionTable = new Table(3, 2);
SetFormRow(positionTable, 0, "Position Applied For:", "{Position}");
SetFormRow(positionTable, 1, "Available Start Date:", "{StartDate}");
SetFormRow(positionTable, 2, "Desired Salary:", "{Salary}");
doc.AddTable(positionTable);
doc.AddParagraph(new Paragraph());

// Section 3: Education Background
AddSectionHeader(doc, "Education Background");

Table educationTable = new Table(3, 2);
SetFormRow(educationTable, 0, "高いest Degree:", "{Degree}");
SetFormRow(educationTable, 1, "Institution:", "{Institution}");
SetFormRow(educationTable, 2, "Graduation Year:", "{GradYear}");
doc.AddTable(educationTable);
doc.AddParagraph(new Paragraph());

// Section 4: Declaration - certification statement
Paragraph declaration = new Paragraph();
declaration.AddText(new TextContent("Applicant certifies that the information provided is accurate and complete."));
doc.AddParagraph(declaration);
doc.AddParagraph(new Paragraph());

Table signatureTable = new Table(1, 2);
SetFormRow(signatureTable, 0, "Signature:", "{Signature}");
doc.AddTable(signatureTable);

// Save template file
doc.SaveAs("CompleteJobApplication.docx");
Console.WriteLine("Complete job application form created!");

// Helper method to add styled section headers
void AddSectionHeader(WordDocument document, string headerText)
{
    Paragraph sectionHeader = new Paragraph();
    TextContent sectionText = new TextContent(headerText);
    sectionText.Style = new TextStyle()
    {
        TextFont = new Font() { FontFamily = "Arial", FontSize = 14 },
        IsBold = true,
        Color = new Color("#333333")
    };
    sectionHeader.AddText(sectionText);
    document.AddParagraph(sectionHeader);
}

// Helper method to populate table cells with label and placeholder
void SetFormRow(Table table, int rowIndex, string label, string placeholder)
{
    table.Rows[rowIndex].Cells[0].AddParagraph(new Paragraph(new TextContent(label)));
    table.Rows[rowIndex].Cells[1].AddParagraph(new Paragraph(new TextContent(placeholder)));
}

このコードでは、論理的な部分に整理された複数のセクションからなるフォームテンプレートを作成します。 ヘルパーメソッド AddSectionHeaderSetFormRow はコードの繰り返しを削減します。 Table コンストラクターは行と列のパラメーターを受け入れ、RowsCells コレクションは個々のテーブルセルへのアクセスを提供します。 各セクションには、スタイル付きのヘッダーと、記入可能なフィールドを持つ表が続きます。 このモジュール式のアプローチにより、要件の変更に応じて、日付選択フィールド、ドロップダウンリストオプション、チェックボックスセクションなどを簡単に追加できます。 画像コントロールを使用して画像を埋め込んだり、日付コントロールを使用して日付選択フィールドを追加したりすることもできます。 IronWordで段落を操作する詳細については、ハウツーガイドを参照してください。

Microsoft Word ドキュメントに、フルネーム、メールアドレス、電話番号、申込日をテーブル形式で表示する求人応募フォームテンプレート

フォームテンプレートにデータを入力するにはどうすればよいですか?

テキスト置換方法とは何ですか?

テンプレートが作成されたら、テキスト置換機能を使って実際のデータを入力するのは簡単です。 以下のコードスニペットは、テンプレートファイルを読み込み、すべてのテキスト要素を反復処理することで、サンプル応募者情報を使用してフォームに入力する方法を示しています。

using IronWord;

License.LicenseKey = "YOUR-LICENSE-KEY";

// Load the template document
WordDocument doc = new WordDocument("CompleteJobApplication.docx");

// Define replacement data - example using John Doe as applicant
var applicantData = new Dictionary<string, string>
{
    { "{FullName}", "John Doe" },
    { "{Email}", "john.doe@email.com" },
    { "{Phone}", "(555) 123-4567" },
    { "{Address}", "123 Main Street, Chicago, IL 60601" },
    { "{DOB}", "March 15, 1992" },
    { "{Position}", "Senior Software Developer" },
    { "{StartDate}", "January 15, 2025" },
    { "{Salary}", "$95,000" },
    { "{Degree}", "Bachelor of Science in Computer Science" },
    { "{Institution}", "University of Illinois" },
    { "{GradYear}", "2014" },
    { "{Signature}", "John Doe" }
};

// Replace all placeholders with actual values
foreach (var field in applicantData)
{
    doc.Texts.ForEach(text => text.Replace(field.Key, field.Value));
}

// Save the filled form to a new file
doc.SaveAs("JohnDoe_Application.docx");
Console.WriteLine("Application form filled successfully!");

テキスト要素上の Replace メソッドはプレースホルダートークンを実際の値に置き換えます。 辞書を使うことでデータが整理され、データベース、API、またはWebアプリケーションのユーザー入力からフォームにデータを簡単に入力できるようになります。 Texts プロパティはドキュメント内のすべてのテキストコンテンツへのアクセスを提供し、ForEach はテキスト要素ごとに繰り返して置換を実行します。 このパターンは、単一のテンプレートから複数のパーソナライズされた文書を生成するのに適しており、多数の候補者への採用通知書を一度に作成するなど、バッチ処理のシナリオに最適です。

Microsoft Word ドキュメントにおけるプレースホルダーフィールドに実際のデータが入力されている完了した就職申込書

記入済みのフォームをどのように安全に保管しますか?

フォームへの入力後、Word文書に保護設定を適用することで、文書のセキュリティを強化できます。 これには、読み取り専用制限やパスワード要件などの保護設定を行い、許可されたユーザーのみがコンテンツを変更できるようにすることを意味します。 個人識別番号、財務情報、医療記録などの機密データを扱う際には、セキュリティ上の配慮が極めて重要です。 保存時および転送時のデータ暗号化、フォームアクセスに関する監査ログ記録、異なるユーザータイプに対する役割ベースのアクセス権限など、追加のセキュリティレイヤーの実装を検討してください。

検証可能な監査証跡が必要な文書については、完成したWord文書をPDFに変換し、 IronPDFを使用してPDFにデジタル署名を適用することを検討してください。 作成にはWord、配布にはPDFというこの組み合わせは、金融や医療などの規制業界ではよく見られるパターンです。

入力可能なWord形式のフォームをPDFに変換するにはどうすればよいですか?

記入可能なWordフォームをPDFに変換することは、フォームを普遍的にアクセスしやすく、共有しやすくするために不可欠なステップです。 IronWordのような.NET Wordライブラリを使用すると、フォームフィールドを含むWord文書を効率的にPDF文書に変換できます。 このプロセスでは、Word文書を読み込み、そのフォームフィールドにアクセスし、ライブラリの変換方法を使用して、すべてのコンテンツを保持したPDFファイルを生成します。

生成されたPDF文書はフォームの内容を保持するため、ユーザーは標準的なPDFビューアを使用して閲覧できます。Microsoft Wordや専用ソフトウェアは必要ありません。 これは、フォームを広く配布し、異なるプラットフォームやデバイス間での互換性を確保する必要がある組織にとって特に有用です。 .NET Wordライブラリの変換機能を利用することで、WordでProfessionalフォームを作成し、それをPDFに変換して最終配布することができ、ワークフローを簡素化し、アクセシビリティを向上させることができます。

PDF変換方法を選択する際には、以下の表に示す要素を考慮してください。

.NETにおけるWordからPDFへの変換方法の比較
アプローチオフィス必須サーバーサイドセーフフィデリティ
Microsoft Office Interopはいなし高い
IronWord + IronPDFなしはい高い
LibreOffice ヘッドレスなしはい(Linux)中くらい
Aspose.Wordsなしはい高い

複数の文書タイプを必要とするEnterprise環境での導入の場合は、 IronWordのライセンスオプションを確認し、文書処理スタック全体を網羅するSuiteライセンスを検討してください。

入力可能なPDFファイルを配布するにはどうすればよいですか?

記入可能なPDFを作成したら、それをユーザーに配布するのは簡単で、非常に柔軟です。 入力可能なPDFファイルは、メールで共有したり、Webアプリケーションに埋め込んだり、DropboxやGoogle Driveなどのクラウドストレージサービスにアップロードしたりできます。これにより、ユーザーはPDFを簡単にダウンロードし、Adobe Acrobat ReaderなどのPDFビューアを使用してフォームに入力し、記入済みの文書を電子的に返送できます。

このデジタル配信プロセスは、データ収集を加速させるだけでなく、物理的なペーパーワークを不要にするため、リモートチームやオンラインワークフローに最適です。 求人応募、顧客からのフィードバック、登録情報の収集など、どのような場合でも、入力可能なPDFファイルを配布することで、組織と回答者の双方にとってスムーズで効率的なペーパーレス体験を実現できます。

フォームが利用可能になった際に受信者に通知したり、完了状況を追跡したり、提出期限が過ぎたフォームのリマインダーを送信したりする自動化されたワークフローの導入を検討してください。 メールマーケティングプラットフォームとの連携により、差し込み印刷フィールドによるパーソナライズを維持しながら、大量配信を簡素化できます。 効果的なデジタルフォームの設計に関する背景知識としては、 W3C Web FormsガイドMicrosoftのDOCX Open XML仕様の両方が、標準規格への準拠に関する有用な情報を提供しています。

高度なフォーム機能をどのように実装しますか?

入力可能なフォームをさらに改善するには、ロジックや検証などの高度な機能を追加することを検討してください。 Logicを使用すると、ユーザーの入力に動的に反応するインタラクティブなフォームを作成できます。 例えば、以前の回答に基づいてセクションを表示または非表示にしたり、特定の条件が満たされた場合にのみ特定のフィールドを有効にしたりすることができます。 バリデーションは、ユーザーが入力したデータが、正しい日付形式、必須項目、有効な電子メールアドレスなどの要件を満たしていることを確認します。

多く for .NET Wordライブラリは、コードによるこれらの高度な機能の作成をサポートしており、ユーザーを誘導し、エラーを減らす洗練されたフォームを構築することができます。 Word文書のテンプレートにロジックと検証を組み込むことで、データを収集するだけでなく、受信した情報の品質と一貫性を向上させるインタラクティブなフォームを作成できます。 高度な実装には以下のようなものが含まれる可能性があります。

  • 合計値を自動的に計算したり、数式を適用したりする計算フィールド 必須項目やエラーを強調表示する条件付き書式設定
  • 動的なフィールドラベルと説明による多言語対応
  • リアルタイム検証のための外部データソースとの統合
  • 正規表現またはビジネスロジックを使用したカスタム検証ルール
  • フォームの記入完了率を示す進捗状況インジケーター

複雑なフォームのシナリオでは、技術的な知識のないユーザーでもコーディングなしでテンプレートを作成・変更できるフォームBuilderインターフェースの実装を検討してください。 このアプローチにより、大規模組織全体で柔軟なフォーム管理が可能になり、ビジネスチームは独自のテンプレートを維持管理しながら、開発者はデータパイプラインに集中できます。IronWordのサンプルページには、高度なテンプレートを作成する際に役立つ、テキストスタイル、表の罫線、ドキュメントプロパティの操作方法に関する追加テクニックが紹介されています。

検証ロジックを構築する際は、コードの保守性とテスト容易性を維持するために、 .NETにおける入力検証の確立されたパターンに従ってください。 MicrosoftのOOXML文書構造に関するドキュメントも、 IronWordが生成する基本フォーマットを理解する上で貴重な参考資料となります。

次のステップは何ですか?

IronWordを使用してC#で入力可能なフォームテンプレートを作成することで、 .NETアプリケーションのドキュメント生成ワークフローが簡素化されます。 テーブルベースのレイアウトアプローチは、適切に整列されたテーブルセルを持つプロフェッショナルで構造化されたフォームを作成し、テンプレート置換パターンは、あらゆるソースからの効率的なデータ入力を可能にします。 文書自動化のニーズが高まるにつれて、 IronWordのハウツーガイドを活用して、メールマージ、ヘッダーとフッターのカスタマイズ、多言語文書の生成といったトピックについて理解を深めてください。

IronWordの全機能を体験するには、無料トライアルをお試しください。または、本番環境への導入をご希望の場合は、ライセンスをご購入ください。 実装に関するご質問は、IronWordサポートページからエンジニアリングチームにお問い合わせください。 IronWord APIリファレンスを参照して、詳細なクラスドキュメントと、複雑なフォームシナリオ、複数ドキュメント処理、エンタープライズ規模の実装を示す高度な例を確認してください。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。