跳至页脚内容
使用 IRONWORD
教程 如何在 C# 中打开 Word 文档

C# 打开 Word 文档

Word application documents are integral to various aspects of professional and personal communication. The ability to manipulate and interact with Microsoft Word document files programmatically is essential for developers looking to automate tasks or integrate document processing into their applications. To be able to work with a Microsoft Word document programmatically in C#, there are many document libraries available. One such library is IronWord, a robust C# Word DOCX library by Iron Software that simplifies working with Word documents in .NET applications.

In this article, we'll explore the robust IronWord - The C# Library, its features, opening Word document collection, and reading data from it.

How to Open Word Documents Collection in C#

  1. Create a Console Application in Visual Studio
  2. Install IronWord C# DOCX library
  3. Open Word document using WordDocument class
  4. Loop through each paragraph using the Paragraph class
  5. Run TextRuns on each Paragraph
  6. Display the contents or Save with SaveAs method

IronWord - The C# DOCX Library

IronWord is a feature-rich C# Word DOCX library developed by Iron Software. It offers a user-friendly API that empowers developers to work with Word documents in their .NET applications with ease. Whether you're creating new Word documents, editing existing ones, or extracting content, IronWord provides a comprehensive set of tools to streamline the process.

Feature Set

1. Compatibility and Cross-Platform Support

IronWord is designed to be versatile, supporting various .NET versions, including .NET 8, 7, 6, Framework, Core, and Azure. Developers can utilize it across different platforms such as Windows, Linux, macOS, iOS, Android, making it adaptable to a wide range of .NET application development scenarios.

2. Document Manipulation

IronWord's capabilities extend beyond simple document creation. It allows for intricate document manipulation, including text and paragraph formatting, image and shape integration, table creation, and much more. This versatility makes IronWord suitable for a variety of applications where precise control over document structure and content is essential.

3. No Dependencies on Microsoft Office

One notable feature of IronWord is its independence from Microsoft Office installations or Word Interop. This means no Word application is required. Developers can harness its functionality without worrying about additional dependencies, ensuring a smoother and more efficient development process.

4. Ease of Use

The library is crafted with a user-friendly API, allowing developers to seamlessly integrate Word document processing functionality into their .NET projects. Moreover, IronWord eliminates the need for installing Microsoft Office or Word Interop, ensuring a hassle-free development experience.

Prerequisites

Before diving into the world of IronWord, make sure you have the following prerequisites in place:

  • Visual Studio: Ensure you have a working installation of Visual Studio, a popular integrated development environment for .NET development. You can download it from here.
  • IronWord: You need to download the library to use its features. You can download NuGet package directly from here.

Setting Up the Environment

To begin, open Visual Studio, and you'll see the welcome screen.

1. Create a New .NET Framework Console Application

Click on "Create a new project." Search for "Console App (.NET Framework)," select it from the list, and click "Next." Name your project and click "Create." Visual Studio will set up a new .NET Framework console application with a basic template, including a Main method as the entry point.

New Project Configuration

2. Install IronWord Using the NuGet Package Manager

In Visual Studio, navigate to the "Tools" menu, select "NuGet Package Manager," and then "Manage NuGet Packages for Solution." In the NuGet window, go to the "Browse" tab, type "IronWord" in the search box, and hit enter. Select the package from the results, ensure your console application project is checked on the right, and click "Install." This will add the necessary references for using IronWord within your C# application. Now you’re ready to begin using IronWord to work with Word documents.

IronWord

3. Add Reference to IronWord in Code:

In your C# code file, add the following using statement in the Program.cs file to reference IronWord:

using IronWord;
using IronWord;
Imports IronWord
$vbLabelText   $csharpLabel

Steps to Open a Word Document and Read Contents

Now that our project is set up, follow these steps to open a Word document and read its contents using IronWord:

  1. Load an Existing Document:
// Load an existing Word document file
WordDocument doc = new WordDocument("existing_document.docx");
// Load an existing Word document file
WordDocument doc = new WordDocument("existing_document.docx");
' Load an existing Word document file
Dim doc As New WordDocument("existing_document.docx")
$vbLabelText   $csharpLabel

In this step, we create an instance of the WordDocument class from the IronWord library. We use the constructor that takes the path to an existing input Word document (existing_document.docx). This initializes the doc object, representing the loaded Word document from the input file.

Input File:

Input

  1. Read and Manipulate Content:

The following code helps in reading the text content from the opened document file:

// Access paragraphs and text runs
foreach (Paragraph paragraph in doc.Paragraphs)
{
    foreach (TextRun textRun in paragraph.TextRuns)
    {
        // Access the text content of each text run
        string content = textRun.Text;
        // Display content on the console
        Console.WriteLine(content);
    }
}
// Access paragraphs and text runs
foreach (Paragraph paragraph in doc.Paragraphs)
{
    foreach (TextRun textRun in paragraph.TextRuns)
    {
        // Access the text content of each text run
        string content = textRun.Text;
        // Display content on the console
        Console.WriteLine(content);
    }
}
' Access paragraphs and text runs
For Each paragraph As Paragraph In doc.Paragraphs
	For Each textRun As TextRun In paragraph.TextRuns
		' Access the text content of each text run
		Dim content As String = textRun.Text
		' Display content on the console
		Console.WriteLine(content)
	Next textRun
Next paragraph
$vbLabelText   $csharpLabel

Here, we iterate through the paragraphs and text runs within the loaded Word document (doc). The foreach loop allows us to traverse each paragraph, and nested within it, each text run. For each textRun, we can access the text content using textRun.Text. This is the point where you can perform any desired manipulations, such as extracting information or modifying the text content programmatically.

  1. Displaying Contents and Output:
// Display contents
Console.WriteLine(content);
// Display contents
Console.WriteLine(content);
' Display contents
Console.WriteLine(content)
$vbLabelText   $csharpLabel

In the second foreach loop of the previous step, we are displaying the visible word contents on the console output screen. We can also save some part of the opened document as a new document:

// Method to save changes to the document
doc.SaveAs("modified_document.docx");
// Method to save changes to the document
doc.SaveAs("modified_document.docx");
' Method to save changes to the document
doc.SaveAs("modified_document.docx")
$vbLabelText   $csharpLabel

The complete program code goes as follows:

using IronWord;
using IronWord.Models;

namespace IronWordExample
{
    // Main program class
    class Program
    {
        // Main method - Entry point of the application
        public static void Main(string[] args)
        {
            // Load existing Word doc file
            WordDocument doc = new WordDocument("existing_document.docx");

            // Access paragraphs and text runs
            foreach (Paragraph paragraph in doc.Paragraphs)
            {
                foreach (TextRun textRun in paragraph.TextRuns)
                {
                    // Access text content
                    string content = textRun.Text;
                    // Display Contents
                    Console.WriteLine(content);
                }
            }

            // Save changes to the document
            doc.SaveAs("modified_document.docx");
        }
    }
}
using IronWord;
using IronWord.Models;

namespace IronWordExample
{
    // Main program class
    class Program
    {
        // Main method - Entry point of the application
        public static void Main(string[] args)
        {
            // Load existing Word doc file
            WordDocument doc = new WordDocument("existing_document.docx");

            // Access paragraphs and text runs
            foreach (Paragraph paragraph in doc.Paragraphs)
            {
                foreach (TextRun textRun in paragraph.TextRuns)
                {
                    // Access text content
                    string content = textRun.Text;
                    // Display Contents
                    Console.WriteLine(content);
                }
            }

            // Save changes to the document
            doc.SaveAs("modified_document.docx");
        }
    }
}
Imports IronWord
Imports IronWord.Models

Namespace IronWordExample
	' Main program class
	Friend Class Program
		' Main method - Entry point of the application
		Public Shared Sub Main(ByVal args() As String)
			' Load existing Word doc file
			Dim doc As New WordDocument("existing_document.docx")

			' Access paragraphs and text runs
			For Each paragraph As Paragraph In doc.Paragraphs
				For Each textRun As TextRun In paragraph.TextRuns
					' Access text content
					Dim content As String = textRun.Text
					' Display Contents
					Console.WriteLine(content)
				Next textRun
			Next paragraph

			' Save changes to the document
			doc.SaveAs("modified_document.docx")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Output

To explore more functionalities IronWord can perform, please visit this code examples page.

Conclusion

In this article, we explored the capabilities of IronWord, a robust C# Word DOCX library that simplifies the process of opening and manipulating Word documents programmatically. By providing a rich feature set and eliminating dependencies on external software, IronWord empowers developers to seamlessly integrate document processing into their .NET applications. Whether you're automating document-related tasks or enhancing experiences, IronWord proves to be a valuable tool in your .NET toolkit.

To learn more and start incorporating IronWord into your new application projects, visit the documentation page.

IronWord offers a free-trial to test out its complete functionality. This helps you make an informed decision before purchasing it. Its Lite license starts from $799 and further details can be found on this license page.

Try IronWord for free from here.

常见问题解答

如何在 C# 中打开 Microsoft Word 文档?

您可以使用 IronWord 库在 C# 中打开 Microsoft Word 文档。首先,在 Visual Studio 中设置一个控制台应用程序,通过 NuGet 包管理器安装 IronWord,并使用 WordDocument 类加载您的 Word 文件。

使用 IronWord 进行文档处理的优势是什么?

IronWord 提供广泛的文档操作功能,支持多种 .NET 版本和平台,并且不需要 Microsoft Office 或 Word Interop。它允许用户高效格式化文本、集成图像和创建表格。

如何使用 C# 操作 Word 文档内容?

使用 IronWord,您可以通过阅读段落、迭代文本运行并修改它们来操作 Word 文档内容。该库提供了格式化文本和无缝集成图像的方法。

IronWord 是否需要额外的软件安装?

不,IronWord 不需要像 Microsoft Office 或 Word Interop 这样的额外软件安装。它是一个独立的库,可以在您的 .NET 应用程序中独立运行。

如何在 C# 中保存对 Word 文档的修改?

您可以通过利用 IronWord 的 SaveAs 方法保存对 Word 文档的修改。这允许您将已编辑的文档导出为新文件。

IronWord 可以在哪些平台上使用?

IronWord 支持各种平台,包括 Windows、Linux、macOS、iOS 和 Android,因为它与 .NET 8、7、6、Framework、Core 和 Azure 兼容。

我如何在项目中安装 IronWord?

要安装 IronWord,请使用 Visual Studio 中的 NuGet 包管理器。搜索'IronWord',并将其添加到您的项目中以开始处理 Word 文档。

我可以在购买许可证之前尝试 IronWord 吗?

是的,IronWord 提供免费试用,允许您测试其功能。您可以在 Iron Software 网站上查看更多有关试用和许可选项的信息。

我在哪里可以找到更多使用 IronWord 的示例?

有关使用 IronWord 的更多代码示例和详细文档,您可以访问 Iron Software 网站,该网站提供全面的资源以帮助您入门。

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