IRONWORDの使用

C#でWordテンプレートを使用してWord文書を生成する方法

公開済み 2024年10月24日
共有:

現代のアプリケーションでは、請求書、送り状、手紙など、さまざまな目的でWord文書をその場で作成することが重要です。Microsoft Wordのテンプレート文書機能は、一貫性と効率性を確保するための強力な方法を提供します。 しかし、これらのテンプレートを手作業で入力するのは時間がかかり、ミスも発生しがちです。 そこでIronWordからIron Softwareこのライブラリは、Wordテンプレートへの入力プロセスをプログラムで自動化するように設計されています。 この記事では、以下のツールの使い方を説明します。IronWordWord文書のテンプレートに記入し、プロセスを説明するための実用的な例を提供すること。

C#のWordテンプレートを使用してWord文書を生成する方法;

  1. Microsoft Visual Studioで新しいプロジェクトを作成します。

  2. インストールIronWordNuGetパッケージマネージャを通して。

  3. Wordテンプレート文書を作成します。

  4. Word文書にデータを挿入し、新規ファイルとして保存する。

  5. 生成されたWord文書にテキスト効果を追加します。

IronWordとは何ですか?

IronWordの.NETライブラリです。Iron SoftwareMicrosoft Word文書の作成、操作、管理をプログラムで容易にするように設計されています。 開発者がWord文書を生成するプロセスを自動化し、アプリケーション内でレポート、請求書、手紙、その他の種類の文書を動的に簡単に作成できるようにします。

IronWord の主な特徴

1.C#num; Wordテンプレートとハンドリングを埋める。

IronWordWordテンプレートを使用することで、テンプレート文書内のプレースホルダーを定義し、実行時に実際のデータに置き換えることができます。

**2.テキスト操作

Word文書内のテキストを簡単に挿入、置換、削除できます。

**3.フォーマット

このライブラリは、フォントスタイル、サイズ、色、段落揃えなど、さまざまな書式オプションをサポートしています。

**4.表と画像

IronWordは、文書内に表や画像を挿入し、操作することができます。

**5.互換性

Microsoft Wordの異なるバージョンとシームレスに動作し、互換性と使いやすさを保証します。

ユースケース

  • レポート作成:動的データを含む詳細なレポートを自動的に生成します。
  • 請求書作成:顧客と取引の詳細を入力し、プロフェッショナルな請求書を作成します。
  • 契約管理:パーソナライズされた情報を使用して、契約の作成を自動化します。
  • 手紙と通知:顧客や従業員のために、パーソナライズされた手紙や通知を作成します。

    IronWordは.NETアプリケーションでのWord文書作業を簡素化し、文書生成や管理作業の自動化を望む開発者にとって価値あるツールとなります。

前提条件

作業を開始する前に、以下のものをご用意ください:

  • Visual Studioはあなたのマシンにインストールされています。
  • 最新の.NET Frameworkがインストールされていること。

ステップ1:Microsoft Visual Studioで新しいプロジェクトを作成します。

では、新しいVisual Studioプロジェクトを作成することから始めましょう。

C#でWordテンプレートを使用してWord文書を生成する方法:図1

下の画面でコンソールアプリケーションのテンプレートを選択してください。

C#でWordテンプレートを使用してWord文書を生成する方法:図2 - コンソールアプリの選択

プロジェクト名と場所を提供してください。

C#でWordテンプレートを使用してWord文書を生成する方法:図3-名前と場所を入力する

.NETのバージョン、できればサポート付きの最新のものを選択し、作成をクリックします。

C#でWordテンプレートを使用してWord文書を生成する方法:図4

ステップ2: IronWord NuGetパッケージ・マネージャーをインストールします。

IronWord NuGetパッケージをNuGetパッケージ・マネージャーからVisual Studioにインストールしてください。

C#でWordテンプレートを使用してWord文書を生成する方法:図5 - NuGetパッケージ・マネージャーからIronWordを検索する

または、以下のコマンドを使用してCLIを直接インストールしてください。

C#でWordテンプレートを使用してWord文書を生成する方法:図6 - コマンドをコピーしてNuGetコンソール・アプリケーションに貼り付ける

dotnet add package IronWord --version 2024.9.1
dotnet add package IronWord --version 2024.9.1
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronWord --version 2024.9.1
VB   C#

ステップ3:Wordテンプレート文書を作成する。

次に、Word文書の作成プロセスで使用する1~2ページのWordテンプレート文書を作成します。

Dear {Name},
Thanks for Purchasing {product}, happy to serve you always. Your application dated {Date} has been approved. The product comes with an expiry date of {expiryDate}. Renew the product on or before expiry date.
Fell Free to contact {phone} or {email} for further queries.
Address: {Address}
Thank you,
{Sender}
Dear {Name},
Thanks for Purchasing {product}, happy to serve you always. Your application dated {Date} has been approved. The product comes with an expiry date of {expiryDate}. Renew the product on or before expiry date.
Fell Free to contact {phone} or {email} for further queries.
Address: {Address}
Thank you,
{Sender}
Dear
If True Then
	Name
End If
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
', Thanks for Purchasing
'{
'	product
'}
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
', happy @to serve you always.Your application dated
'{
'	@Date
'}
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'has been approved.The product comes @with an expiry @date @of
'{
'	expiryDate
'}
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'.Renew the product on @or before expiry @date.Fell Free @to contact
'{
'	phone
'}
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'@or {email} for further queries.Address:
'{
'	Address
'}
Thank you,
If True Then
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'	Sender}
VB   C#

上記の文書をTemplate.docxとして保存してください。

ステップ4:Word文書にデータを挿入し、新規ファイルとして保存する。

using IronWord;
class Program
{
    static void Main()
    {
        License.LicenseKey = "your key";
        // Define the path to the template and the output file object sender
        string templatePath = "Template.docx";
        string outputPath = "FilledDocument.docx";
        // Create a new instance of the WordDocument class
        WordDocument doc = new WordDocument(templatePath);
            // Define a dictionary/ first table of placeholders and their replacements
            var replacements = new Dictionary<string, string>
            {
                { "{Name}", "John Doe" },
                { "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
                { "{Address}", "123 Iron Street, Iron Software" },
                { "{product}", "IronWord" },
                { "{Sender}", "IronSoftware" },
                { "{phone}", "+123 456789" },
                { "{email}", "sale@ironsoftware.com" },
                { "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
            };
            // Replace placeholders with actual data
            foreach (var replacement in replacements)
            {
                doc.Texts.ForEach(x=>x.Replace(replacement.Key, replacement.Value));
            }
            // Save the filled document
           doc.Save(outputPath);
        Console.WriteLine("Document filled and saved successfully.");
    }
}
using IronWord;
class Program
{
    static void Main()
    {
        License.LicenseKey = "your key";
        // Define the path to the template and the output file object sender
        string templatePath = "Template.docx";
        string outputPath = "FilledDocument.docx";
        // Create a new instance of the WordDocument class
        WordDocument doc = new WordDocument(templatePath);
            // Define a dictionary/ first table of placeholders and their replacements
            var replacements = new Dictionary<string, string>
            {
                { "{Name}", "John Doe" },
                { "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
                { "{Address}", "123 Iron Street, Iron Software" },
                { "{product}", "IronWord" },
                { "{Sender}", "IronSoftware" },
                { "{phone}", "+123 456789" },
                { "{email}", "sale@ironsoftware.com" },
                { "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
            };
            // Replace placeholders with actual data
            foreach (var replacement in replacements)
            {
                doc.Texts.ForEach(x=>x.Replace(replacement.Key, replacement.Value));
            }
            // Save the filled document
           doc.Save(outputPath);
        Console.WriteLine("Document filled and saved successfully.");
    }
}
Imports IronWord
Friend Class Program
	Shared Sub Main()
		License.LicenseKey = "your key"
		' Define the path to the template and the output file object sender
		Dim templatePath As String = "Template.docx"
		Dim outputPath As String = "FilledDocument.docx"
		' Create a new instance of the WordDocument class
		Dim doc As New WordDocument(templatePath)
			' Define a dictionary/ first table of placeholders and their replacements
			Dim replacements = New Dictionary(Of String, String) From {
				{"{Name}", "John Doe"},
				{"{Date}", DateTime.Now.ToString("MMMM d, yyyy")},
				{"{Address}", "123 Iron Street, Iron Software"},
				{"{product}", "IronWord"},
				{"{Sender}", "IronSoftware"},
				{"{phone}", "+123 456789"},
				{"{email}", "sale@ironsoftware.com"},
				{"{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy")}
			}
			' Replace placeholders with actual data
			For Each replacement In replacements
				doc.Texts.ForEach(Function(x) x.Replace(replacement.Key, replacement.Value))
			Next replacement
			' Save the filled document
		   doc.Save(outputPath)
		Console.WriteLine("Document filled and saved successfully.")
	End Sub
End Class
VB   C#

説明

提供されるコードでは、IronWordライブラリを使用してWord文書のテンプレートに特定のデータを入力する例を示しています。 以下は簡潔な説明です:

  1. ライセンス設定:コードはIronWordの機能を有効にするためのライセンスキーの設定から始まります。

  2. ファイルパス:Wordテンプレートのパスを指定します。(\テンプレート.docx)出力ファイル(\FilledDocument.docx).3. **ドキュメント・インスタンスを作成します:テンプレート・パス参照を使って、∕WordDocument` のインスタンスが作成されます。

  3. 置換の定義:キーがテンプレート内のプレースホルダーを表し、値が挿入するデータを表す辞書が作成されます:辞書を繰り返し、ドキュメント内の各プレースホルダーを対応するデータで置き換えます。

  4. Save Document:最後に、更新されたドキュメントは、saveメソッドを使用して指定された出力パスに保存され、パラメータを渡します7。 完了メッセージ:完了メッセージ**:ドキュメントの入力と保存が成功したことを確認するメッセージが出力されます。

    出力

    C#でWordテンプレートを使用してWord文書を生成する方法:図7 - Wordドキュメントの出力

ステップ5:生成されたWord文書にテキスト効果を追加します。

IronWordはまた、下の表に示すように、さまざまなテキスト効果を追加することができます。

次の例では、Word Iron Softwareにテキスト効果を追加します。

using IronWord;
using IronWord.Models;
class Program
{
    static void Main()
    {
        License.LicenseKey = "your key";
        // Define the path to the template and the output file
        string templatePath = "Template.docx";
        string outputPath = "FilledDocument.docx";
        // Create a new instance of the WordDocument class
        WordDocument doc = new WordDocument(templatePath);
            // Define a dictionary of placeholders and their replacements
            var replacements = new Dictionary<string, string>
            {
                { "{Name}", "John Doe" },
                { "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
                { "{Address}", "123 Iron Street, Iron Software" },
                { "{product}", "IronWord" },
                { "{Sender}", "Sale," },
                { "{phone}", "+123 456789" },
                { "{email}", "sale@ironsoftware.com" },
                { "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
            };
            // Replace placeholders with actual data
            foreach (var replacement in replacements)
            {
                doc.Texts.ForEach(x=>x.Replace(replacement.Key, replacement.Value));
            }
        // Save the filled document
        //doc.Save(outputPath);
        //Console.WriteLine("Document filled and saved successfully.");
        // Create and configure text style methods
        TextStyle textStyle = new TextStyle();
        textStyle.TextEffect = new TextEffect()
        {
            GlowEffect = new Glow()
            {
                GlowColor = IronWord.Models.Color.Aqua,
                GlowRadius = 10,
            },
        };
        // Add text with style or image
        doc.AddText(" IronSoftware").Style = textStyle;
        // Export new Word document
        doc.SaveAs("glowEffect.docx");
    }
}
using IronWord;
using IronWord.Models;
class Program
{
    static void Main()
    {
        License.LicenseKey = "your key";
        // Define the path to the template and the output file
        string templatePath = "Template.docx";
        string outputPath = "FilledDocument.docx";
        // Create a new instance of the WordDocument class
        WordDocument doc = new WordDocument(templatePath);
            // Define a dictionary of placeholders and their replacements
            var replacements = new Dictionary<string, string>
            {
                { "{Name}", "John Doe" },
                { "{Date}", DateTime.Now.ToString("MMMM d, yyyy") },
                { "{Address}", "123 Iron Street, Iron Software" },
                { "{product}", "IronWord" },
                { "{Sender}", "Sale," },
                { "{phone}", "+123 456789" },
                { "{email}", "sale@ironsoftware.com" },
                { "{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy") },
            };
            // Replace placeholders with actual data
            foreach (var replacement in replacements)
            {
                doc.Texts.ForEach(x=>x.Replace(replacement.Key, replacement.Value));
            }
        // Save the filled document
        //doc.Save(outputPath);
        //Console.WriteLine("Document filled and saved successfully.");
        // Create and configure text style methods
        TextStyle textStyle = new TextStyle();
        textStyle.TextEffect = new TextEffect()
        {
            GlowEffect = new Glow()
            {
                GlowColor = IronWord.Models.Color.Aqua,
                GlowRadius = 10,
            },
        };
        // Add text with style or image
        doc.AddText(" IronSoftware").Style = textStyle;
        // Export new Word document
        doc.SaveAs("glowEffect.docx");
    }
}
Imports IronWord
Imports IronWord.Models
Friend Class Program
	Shared Sub Main()
		License.LicenseKey = "your key"
		' Define the path to the template and the output file
		Dim templatePath As String = "Template.docx"
		Dim outputPath As String = "FilledDocument.docx"
		' Create a new instance of the WordDocument class
		Dim doc As New WordDocument(templatePath)
			' Define a dictionary of placeholders and their replacements
			Dim replacements = New Dictionary(Of String, String) From {
				{"{Name}", "John Doe"},
				{"{Date}", DateTime.Now.ToString("MMMM d, yyyy")},
				{"{Address}", "123 Iron Street, Iron Software"},
				{"{product}", "IronWord"},
				{"{Sender}", "Sale,"},
				{"{phone}", "+123 456789"},
				{"{email}", "sale@ironsoftware.com"},
				{"{expiryDate}", DateTime.Now.AddYears(1).ToString("MMMM d, yyyy")}
			}
			' Replace placeholders with actual data
			For Each replacement In replacements
				doc.Texts.ForEach(Function(x) x.Replace(replacement.Key, replacement.Value))
			Next replacement
		' Save the filled document
		'doc.Save(outputPath);
		'Console.WriteLine("Document filled and saved successfully.");
		' Create and configure text style methods
		Dim textStyle As New TextStyle()
		textStyle.TextEffect = New TextEffect() With {
			.GlowEffect = New Glow() With {
				.GlowColor = IronWord.Models.Color.Aqua,
				.GlowRadius = 10
			}
		}
		' Add text with style or image
		doc.AddText(" IronSoftware").Style = textStyle
		' Export new Word document
		doc.SaveAs("glowEffect.docx")
	End Sub
End Class
VB   C#

**説明

改訂されたコードでは、IronWordライブラリーを使用してWord文書のテンプレートに記入し、テキストをスタイルし、修正した文書を保存することを説明しています。 以下は簡潔な説明です:

  1. ライセンス設定:IronWordのライセンスキーを設定し、機能を有効にします。

  2. ファイルパス:テンプレートのパスを指定します。(Template.docx)出力ファイル(glowEffect.docx).

  3. Create Document Instance:提供されたテンプレートパスを使用して WordDocument インスタンスを初期化します。

  4. 置換の定義:プレースホルダとそれに対応する置換値の辞書を作成します。

  5. プレースホルダの置換:辞書を繰り返し、ドキュメント内のプレースホルダを実際のデータに置き換えます。

  6. テキストスタイルの設定:グロー効果を持つテキストスタイルを定義し、色と半径を指定します。

  7. スタイル付きテキストの追加:設定されたスタイルのテキストをドキュメントに追加します。

  8. Save Document:更新されたドキュメントを新しい名前で保存します。(glowEffect.docx)また、適用されるテキストスタイルを反映する必要があります。

  9. コンソール出力:以前のコンソール出力文はコメントアウトされ、保存操作は新しいドキュメント名を反映するように更新されました。

    このコードはIronWordのドキュメントの自動化とカスタマイズ機能(テキストの置換やスタイリングなど)を示しています。

    出力

    C#でWordテンプレートを使用してWord文書を生成する方法:図8 - Wordの出力例

IronWordライセンス

IronWord. データが入力されると、提供された電子メールIDにライセンスが配信されます。 このライセンスは、.NET、Java、Python、またはNode.jsを使用する前に、コードの先頭に配置する必要があります。IronWordライブラリは以下の通りです。

License.LicenseKey = "your Key Here"
License.LicenseKey = "your Key Here"
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'License.LicenseKey = "your Key Here"
VB   C#

結論

IronWordは、テンプレートを使用してWord文書を生成する際に、いくつかの利点を提供します。 開発者がプログラムでテンプレートに特定のデータを入力できるようにすることで、ドキュメント作成の自動化を簡素化し、手入力の必要性を減らします。 これにより、ヒューマンエラーのリスクが最小限に抑えられ、効率と精度が向上します。 さらに、IronWord生成される各ファイルが同じフォーマットと構造に準拠するように、ドキュメント間の一貫性を維持することができます。 繰り返し作業を自動化することで、時間とリソースを節約できるため、大量のドキュメントを迅速に作成するのに理想的です。 IronWord頻繁に、または複雑な文書生成を必要とするシナリオにおいて、生産性を向上させ、ワークフローを合理化します。

この記事で説明されているステップに従い、提供されている例を活用してIronWordまた、ドキュメント生成のニーズを効率的に管理し、ワークフローを合理化することができます。

次へ >
C#でWordファイルに透かしを追加する方法

準備はできましたか? バージョン: 2024.12 新発売

無料のNuGetダウンロード 総ダウンロード数: 7,878 ライセンスを表示 >