使用IRONWORD

如何使用 C# 中的 Word 模板生成 Word 文档

发布 2024年十月24日
分享:

在现代应用中,为账单、发票、信件等各种目的即时生成 Word 文档至关重要。Microsoft Word 模板文档功能为确保一致性和效率提供了一种强大的方法。 然而,手动填充这些模板既耗时又容易出错。 这就是IronWord铁软件Word模板是一个强大的.NET库,旨在以编程方式自动填充Word模板。 在本文中,我们将介绍如何使用IronWord在翻译过程中,我们需要填写一个 Word 文档模板,并提供一个实际示例来说明翻译过程。

如何使用 C# 中的 Word 模板生成 Word 文档;

  1. 在 Microsoft Visual Studio 中创建一个新项目。

  2. 安装IronWord通过 NuGet 软件包管理器。

  3. 创建 Word 模板文档。

  4. 将数据插入 Word 文档并保存为新文件。

  5. 为生成的 Word 文档添加文本效果。

什么是IronWord?

IronWord是一个 .NET 库,来自铁软件Microsoft Word for .NET》旨在促进以编程方式创建、操作和管理 Microsoft Word 文档。 它允许开发人员自动生成 Word 文档,从而更轻松地在应用程序中动态创建报告、发票、信函和其他类型的文档。

IronWord 的主要功能

1.C# 填写 Word 模板和处理

IronWord使 Word 模板的使用成为可能,在模板文档中定义占位符,并在运行时用实际数据替换占位符。

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 包管理器。

在 Visual Studio 中从 NuGet 软件包管理器安装 IronWord NuGet 软件包,如下所示。

如何使用 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 模板文档,以便在 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 模板的路径(`Template.docx`)和输出文件(\FilledDocument.docx`).3. 创建文档实例:使用模板路径引用创建一个 `WordDocument` 实例。

  3. 定义替换:创建一个字典,其中键代表模板中的占位符,值代表要插入的数据:它会遍历字典,用相应的数据替换文档中的每个占位符。

  4. 保存文档:最后,使用保存方法和传递参数将更新后的文档保存到指定的输出路径。 完成信息:打印一条信息,确认文档已成功填充和保存。

    输出

    如何使用 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. 创建文档实例:使用提供的模板路径初始化 WordDocument 实例。

  4. 定义替换:创建占位符及其相应替换值的字典。

  5. 替换占位符:遍历字典,用实际数据替换文档中的占位符。

  6. 配置文本样式:定义具有发光效果的文本样式,指定颜色和半径。

  7. 添加样式文本:将具有配置样式的文本添加到文档中。

  8. 保存文档:以新名称保存更新后的文档(glowEffect.docx)译文必须反映所应用的文本风格。

  9. 控制台输出:前面的控制台输出语句已注释掉,保存操作已更新以反映新的文档名称。

    这段代码演示了 IronWord 的文档自动化和定制功能,包括文本替换和样式设计。

    输出

    如何使用 C# 中的 Word 模板生成 Word 文档:图 8 - Word 输出示例

IronWord 许可

IronWord. 输入数据后,许可证将发送至所提供的电子邮件 ID。 该许可证需要放在代码的开头,然后再使用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 文档方面,"Word.NET "具有多项优势。 它允许开发人员以编程方式在模板中填写特定数据,减少了手动输入的需要,从而简化了文档创建自动化。 这样可以提高效率和准确性,因为人为错误的风险降到了最低。 此外、IronWord帮助保持各文档的一致性,确保生成的每个文件都遵循相同的格式和结构。 自动化重复性任务可以节省时间和资源,是快速制作大量文件的理想选择。 IronWord在需要频繁生成文档或生成复杂文档的情况下,可以提高工作效率并简化工作流程。

按照本文概述的步骤,并利用所提供的示例与IronWord您可以使用我们的翻译工具,有效管理文件生成需求并简化工作流程。

下一步 >
如何用 C# 在 Word 文件中添加水印

准备开始了吗? 版本: 2024.12 刚刚发布

免费NuGet下载 总下载量: 7,878 查看许可证 >