跳至页脚内容
使用 IRONWORD

如何在 C# 中将文档导出为 Word

IronWord 允许 C# 开发人员通过简单的代码将数据导出到 WORD 文档中。 只需几行代码,您即可创建、填充并保存包含文本、格式设置及复杂文档结构的 DOCX 文件。

Microsoft WORD 是一款广泛用于创建和编辑文档的工具,以其多功能特性和用户友好的界面而闻名。 在软件开发中,无论是用于报告、文档编写还是数据展示,经常需要通过编程方式生成 WORD 文档。 无论您是在构建自动化报表系统、生成发票、创建动态模板,还是根据数据库记录批量生成文档,将数据导出为 WORD 格式都能为您节省大量手动操作的时间。

在本指南中,我们将探讨如何创建一个新的 [C#](https://en.wikipedia.org/wiki/C_Sharp_(programming_language) 控制台应用程序,并使用 IronWord(一个用于通过编程方式操作 Word 文档的高效库)将数据导出到 MS Word 文档中。 完成本教程后,您将掌握从项目设置到生成首个包含自定义内容的 WORD 文档的完整工作流程。

如何在 C# 中将文档导出为 WORD 格式?

  1. 创建一个新的 C# Visual Studio 项目。
  2. 安装 C# Word 库,以便将数据导出到 Word。
  3. 导入 Word 库的依赖项。
  4. 使用"new WordDocument(paragraph)"方法创建一个新的 Word 文档。
  5. 使用"SaveAs()"函数保存新创建的 Word 文档。

如何创建一个新的 C# 控制台应用程序?

要在 Visual Studio 中创建一个新的 C# 控制台应用程序,请按照以下步骤操作。 "控制台应用程序"模板为学习如何生成 WORD 文档提供了简单的入门起点,便于后续将该功能集成到 Web 服务或桌面软件等大型应用程序中。

  1. 打开 Visual Studio。 在启动界面中,选择"创建新项目"。

Visual Studio 启动屏幕显示"创建新项目"按钮高亮显示,用于开始创建一个新的 C# 控制台应用程序。

  1. 选择"控制台应用程序",然后单击"下一步"。 若出现多个选项,请选择 C# 版本。

Visual Studio 中的项目模板选择窗口显示控制台应用程序模板选项,并应用了 C# 语言筛选器。

  1. 输入项目名称和位置。 点击"下一步",选择 .NET 6.0 或更高版本,然后点击"创建"。

什么是 IronWord,我为什么要使用它?

IronWord 是一个 .NET 库,它提供了一个方便的 API,用于在 C# 中处理 Word 文档。 它允许开发人员在 C# 应用程序中创建 WORD 文档、修改现有文档并将其导出。 使用 IronWord,您可以根据来自各种来源(例如数据库、API 或用户输入)的数据动态生成 Word 文档。 该库处理了所有复杂的底层 Office Open XML 规范,让您能够专注于业务逻辑,而非文档格式的繁琐细节。

IronWord 在 WORD 文档处理方面具有多项优势。 与某些需要在服务器或开发机上安装 Microsoft Office 的替代方案不同,IronWord 能够独立运行,因此非常适合云部署、容器化应用程序以及无法安装 Office 的环境。 该库支持多种文档元素,包括段落、表格、图片、页眉、页脚、样式和格式选项,让您能够完全掌控文档的外观和结构。

如何在我的项目中安装 IronWord?

您可以使用 NuGet 包管理器按照以下步骤轻松安装 IronWord。 NuGet 是 .NET Standard 的标准包管理系统,使库的安装和版本管理变得简单可靠。

  1. 在 Visual Studio 中,打开 NuGet 包管理器窗口,然后转到"浏览"选项卡。
  2. 在"浏览"选项卡中,在搜索栏中输入 IronWord,然后按 Enter 键。
  3. 会出现一个包列表。 选择最新版本的软件包,然后点击"安装"。

Visual Studio 中的 NuGet 包管理器窗口显示 IronWord 包搜索结果,其中"安装"按钮可见

安装完成后,IronWord 即可投入使用。 安装过程会自动处理所有依赖项,并正确配置您的项目引用。

如何使用 IronWord 将数据导出到 WORD 文档?

让我们通过一个实际示例,了解如何使用 C# 中的 IronWord 将数据导出到 WORD 文档。 请参考以下代码片段,该片段演示了创建简单 WORD 文档的基本流程:

using IronWord;
using IronWord.Models;

System.Console.WriteLine("Enter the Text to export it to word document");
var userInput = System.Console.ReadLine();

// Create textRun which is a part of a paragraph content
Text textRun = new Text(userInput);
Paragraph paragraph = new Paragraph();
paragraph.AddChild(textRun);

// Create a new document object and add the paragraph to it
WordDocument doc = new WordDocument(paragraph);

// Export document to "document.docx" file
doc.SaveAs("document.docx");
using IronWord;
using IronWord.Models;

System.Console.WriteLine("Enter the Text to export it to word document");
var userInput = System.Console.ReadLine();

// Create textRun which is a part of a paragraph content
Text textRun = new Text(userInput);
Paragraph paragraph = new Paragraph();
paragraph.AddChild(textRun);

// Create a new document object and add the paragraph to it
WordDocument doc = new WordDocument(paragraph);

// Export document to "document.docx" file
doc.SaveAs("document.docx");
Imports IronWord
Imports IronWord.Models

System.Console.WriteLine("Enter the Text to export it to word document")
Dim userInput = System.Console.ReadLine()

' Create textRun which is a part of a paragraph content
Dim textRun As New Text(userInput)
Dim paragraph As New Paragraph()
paragraph.AddChild(textRun)

' Create a new document object and add the paragraph to it
Dim doc As New WordDocument(paragraph)

' Export document to "document.docx" file
doc.SaveAs("document.docx")
$vbLabelText   $csharpLabel

在这个例子中,我们将创建一个简单的 Word 文档,其中包含一个段落,内容为用户提供的文本。 让我们逐步解析代码: 1.导入所需库:我们首先从 IronWord 导入必要的命名空间。 IronWord 命名空间包含主要文档类,而 IronWord.Models 提供内容模型类。 2.创建文本内容:我们创建一个 Text 对象,表示我们要在 Word 文档中包含的文本内容。 在这种情况下,它是从控制台收集到的 userInput。 3.创建段落:接下来,我们创建一个 Paragraph 对象,并将 Text 对象 (textRun) 添加到该对象作为子元素。 WORD 中的段落通常包含一个或多个文本段,允许在单个段落内混合使用不同格式。 4.创建 Word 文档:我们实例化一个新的 WordDocument 对象,并将我们创建的段落作为参数传递。 这将使用指定的内容创建一个新的 Word 文档。 5.导出文档:最后,我们调用 @@--CODE-92592--CODE-92592 对象的 @@--CODE-92593--CODE-92593 的方法,将文档导出为名为"@@--CODE-92593"的 .docx 文件。默认情况下,该文件保存在应用程序的工作目录中。

本示例演示了使用 IronWord 将数据导出到 Word 文档的基本工作流程。 您可以根据具体需求自定义现有 WORD 文档的内容和结构。 例如,您可以添加多个段落、设置文本格式、插入表格、图像、页眉、页脚等等。

控制台输出是什么样子的?

控制台应用程序窗口显示用户文本输入提示,并显示正在处理以导出 Word 文档的已输入文本。

生成的 WORD 文档是什么样子的?

Microsoft Word 文档窗口显示生成的 DOCX 文件,导出的文本内容显示在文档正文中。

如何在 WORD 文档中添加更复杂的内容?

虽然基本示例展示了简单的文本导出,但 IronWord 支持更为复杂的文档创建。 以下示例演示了如何添加包含多个段落和样式的格式化文本:

using IronWord;
using IronWord.Models;

// Create a document with multiple formatted paragraphs
WordDocument doc = new WordDocument();

// Add a title paragraph with bold formatting
Paragraph titleParagraph = new Paragraph();
Text titleText = new Text("Sales Report Q4 2024");
titleText.Style = new TextStyle() { Bold = true, FontSize = 24 };
titleParagraph.AddChild(titleText);
doc.AddChild(titleParagraph);

// Add a regular paragraph with mixed formatting
Paragraph contentParagraph = new Paragraph();
Text normalText = new Text("Total revenue for Q4 was ");
Text emphasizedText = new Text("$1.2 million");
emphasizedText.Style = new TextStyle() { Bold = true, Italic = true };
Text endText = new Text(", exceeding projections by 15%.");

contentParagraph.AddChild(normalText);
contentParagraph.AddChild(emphasizedText);
contentParagraph.AddChild(endText);
doc.AddChild(contentParagraph);

// Save the formatted document
doc.SaveAs("quarterly_report.docx");
using IronWord;
using IronWord.Models;

// Create a document with multiple formatted paragraphs
WordDocument doc = new WordDocument();

// Add a title paragraph with bold formatting
Paragraph titleParagraph = new Paragraph();
Text titleText = new Text("Sales Report Q4 2024");
titleText.Style = new TextStyle() { Bold = true, FontSize = 24 };
titleParagraph.AddChild(titleText);
doc.AddChild(titleParagraph);

// Add a regular paragraph with mixed formatting
Paragraph contentParagraph = new Paragraph();
Text normalText = new Text("Total revenue for Q4 was ");
Text emphasizedText = new Text("$1.2 million");
emphasizedText.Style = new TextStyle() { Bold = true, Italic = true };
Text endText = new Text(", exceeding projections by 15%.");

contentParagraph.AddChild(normalText);
contentParagraph.AddChild(emphasizedText);
contentParagraph.AddChild(endText);
doc.AddChild(contentParagraph);

// Save the formatted document
doc.SaveAs("quarterly_report.docx");
Imports IronWord
Imports IronWord.Models

' Create a document with multiple formatted paragraphs
Dim doc As New WordDocument()

' Add a title paragraph with bold formatting
Dim titleParagraph As New Paragraph()
Dim titleText As New Text("Sales Report Q4 2024")
titleText.Style = New TextStyle() With {.Bold = True, .FontSize = 24}
titleParagraph.AddChild(titleText)
doc.AddChild(titleParagraph)

' Add a regular paragraph with mixed formatting
Dim contentParagraph As New Paragraph()
Dim normalText As New Text("Total revenue for Q4 was ")
Dim emphasizedText As New Text("$1.2 million")
emphasizedText.Style = New TextStyle() With {.Bold = True, .Italic = True}
Dim endText As New Text(", exceeding projections by 15%.")

contentParagraph.AddChild(normalText)
contentParagraph.AddChild(emphasizedText)
contentParagraph.AddChild(endText)
doc.AddChild(contentParagraph)

' Save the formatted document
doc.SaveAs("quarterly_report.docx")
$vbLabelText   $csharpLabel

本示例演示了如何创建具有多样化格式的文档,使您导出的文档更显专业且视觉上更具吸引力。 TextStyle 类提供了用于控制字体系列、大小、颜色、粗体、斜体、下划线和其他文本属性的属性。

程序化导出 WORD 文档有哪些常见用例?

了解实际应用场景有助于直观理解 WORD 文档导出功能如何为您的项目带来益处。 以下是几个编程生成文档大显身手的常见场景:

发票和收据生成:从计费系统中自动生成包含页眉、表格和付款条款的Professional发票。

报告自动化:自动生成定期财务摘要、绩效指标或合规文档。

邮件合并操作:通过将数据库记录合并到模板中,创建个性化的合同、信函或证书。

文档生成系统:将源代码注释或数据库架构转换为格式化的技术文档。

表单处理:将网页表单或调查问卷回复转换为格式化的 WORD 文档,供利益相关者审阅。

主要收获是什么?

总而言之,IronWord 为在 C# 中将数据导出到 WORD 文档提供了完整的解决方案。 无论您是生成简单的报告、复杂的文档还是动态内容,IronWord 都能简化这一过程,并使开发人员能够通过编程方式创建高质量的 WORD 文档。 通过利用其功能和特性,您可以简化文档生成工作流,并为用户提供Professional文档。

该库无需依赖 Microsoft Office 安装,加之其完善的 API 和稳定的性能,使其成为小型应用程序和 Enterprise 级文档处理系统的理想选择。 随着您进一步探索 IronWord 的功能,您将发现多种方法来优化文档生成流程,并为用户提供更优质的文档解决方案。

要了解更多自动生成 Microsoft Word 文档的技巧,请访问以下链接

常见问题解答

我如何在 C# 中输出数据到 Word 文档?

您可以使用 IronWord 在 C# 中输出数据到 Word 文档,通过创建 C# 控制台应用程序,使用 NuGet 包管理器安装 IronWord,导入必要的库,并使用 API 创建和保存包含数据的 Word 文档。

使用 .NET 库创建 Word 文档有哪些好处?

使用诸如 IronWord 的 .NET 库来创建 Word 文档可以让开发人员以编程方式自动生成高质量文档,从而提高工作流程的效率,并适应特定需求而无需依赖 Microsoft Interop。

如何在 C# 中格式化文本和添加图片到 Word 文档?

通过 IronWord,您可以通过设置字体样式、大小和颜色来格式化文本,并通过使用 API 将图片插入到文档中来添加图片。这使 C# 应用程序中的文档定制更丰富。

IronWord 可以用于动态文档生成吗?

是的,IronWord 允许根据各种来源的数据(如数据库或用户输入)创建 Word 文档,从而可以定制以满足特定用户需求。

使用 IronWord 创建 Word 文档有哪些步骤?

要使用 IronWord 创建 Word 文档,首先要设置一个 C# 控制台应用程序,使用 NuGet 安装 IronWord,导入库,创建文本和段落对象,并使用 SaveAs 方法导出文档。

IronWord 如何简化 C# 中 Word 文档的创建?

IronWord 简化 Word 文档创建过程,通过提供一个简单直观的 API,让开发人员可以轻松以编程方式创建、操作和导出 Word 文档,从而减少复杂性并提高生产力。

能否在 C# 中根据用户输入创建 Word 文档?

是的,使用 IronWord,您可以通过捕获用户输入、创建文本对象、将其添加到段落中,然后使用 IronWord API 将其导出为 .docx 文件来创建 Word 文档。

在 C# 中输出到 Word 时如何解决常见问题?

在使用 IronWord 输出到 Word 时进行故障排除时,确保导入了所有必要的库,通过 NuGet 安装的是正确版本,并确保您的数据类型与所使用的 API 方法兼容。

程序生成 Word 文档的实际应用有哪些?

使用 IronWord 程序生成 Word 文档对于创建自动化报告、文档和数据展示文档非常有用,尤其是在处理大型数据集或频繁更新的信息时。

Jordi Bardia
软件工程师
Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我