使用IRONWORD

如何使用 C# 操作 Word 文件

发布 2023年十二月24日
分享:

介绍

微软创建了 Word 作为文字处理器。 该工具最初的名称是用于 Xenix 系统的 Multi-Tool Word,于 1983 年 10 月 25 日推出。随后开发了适用于多种操作系统的版本,如 SCO Unix(1990)微软视窗(1989), Atari ST(1988)OS/2(1989), AT&T UNIX PC(1985)运行 DOS 的 IBM PC(1983)运行经典 macOS 的苹果 Macintosh(1985)MacOS(2001)网络浏览器(2010)iOS(2014)和安卓系统(2015). Wine 可用于在 Linux 上运行旧版本的 Microsoft Word。

商业 Word 版本可以作为独立应用程序或作为以下应用程序的组件获得许可微软 365您可以以永久许可证或 Microsoft 365 订阅的一部分的形式购买《Microsoft Visual Studio .NET》。 在本文中,我们将使用C#和Microsoft Interop程序集来操作Word文档,并探索IronXL如何帮助我们编辑Excel文档。

如何使用 C# 操作 Word 文档;

  1. 创建一个全新的 Visual Studio 项目。

  2. 建立阅读 Word 文档所需的库。

  3. 要操作 Word 文档,请加载现有文件或创建新文件。

  4. 编辑文档数据并解析文件。

  5. 删除创建的所有对象。

什么是 Microsoft Interop

用 C# 或 VB.NET 编写的程序可以创建或打开 Word 文档(DOC、DOCX 和 RTF)与办公室互操作性适用于 Microsoft Word。 然而,在项目中使用时,它有很多缺点。

我们将讨论您在使用 Microsoft Office Interop 时可能遇到的常见问题。(文字自动化)本文将从 C# 或 VB.NET 开始翻译。

例如

  • 文字自动化所需的每台客户端 PC 都需要获得 Microsoft Word 的许可。
  • 每个客户的电脑都必须安装相同版本的 Microsoft Word。
  • 在使用自动化时,Word 会在后台使用几兆内存加载不同的文件和 DLL。
  • Microsoft Word API 通过 COM 对象访问。 从托管代码中调用 COM 对象时可能会出现一些问题,如类型转换、需要 COM 封装器以及 .NET Framework 集成不佳等。

在 Visual Studio 中创建新项目

在使用 Interop 库之前,必须启动 Visual Studio 并创建一个 .NET 项目。 Visual Studio 兼容任何版本,但建议使用最新版本。 根据您的需要,您可以开发一个项目模板或一个类似 Windows 窗体的应用程序。 为简单起见,我将在本例中使用控制台应用程序。

如何使用 C# 操作 Word 文档:图 1 - 创建一个新的 Visual Studio 项目

配置项目详细信息

接下来,提供项目的地点和名称。

如何使用 C# 操作 Word 文档:图 2 - 配置新的 VS 项目

使用 .NET Framework 创建新项目文件

使用框架下拉菜单,您可以选择.NET框架. 本项目将使用 Dot.NET Framework 4.7。 下一步操作是按下 "创建 "按钮。

应用程序生成解决方案后,您可以输入代码,并通过访问 Program.cs 文件来构建或运行程序。

如何使用 C# 操作 Word 文档:图 3 - 新建 .NET 项目 .cs 文件

现在,"Microsoft.Office.Interop.Word "库已经添加,我们可以测试代码了。

安装互操作库

下一步修复需要安装 Interop 库。 在 NuGet 软件包管理器控制台中输入以下命令即可完成翻译:

:InstallCmd: Install-Package Microsoft.Office.Interop.Word

如何使用 C# 操作 Word 文档:图 4 - 要安装 IronXL 库,您可以使用软件包管理器控制台并输入指定命令:安装软件包 IronXL.Excel

另一种查找软件包 "Interop "的方法是使用 NuGet 软件包管理器。 在所有与 Interop 相关的 NuGet 软件包中,我们可以从该列表中选择所需的软件包进行下载。

如何使用 C# 操作 Word 文档:图 5 - 选择 Microsoft.Office.Interop.Word 库

安装好所有必要的库后,您就可以开始编辑 DOCX 文件了。

使用互操作操作现有 Word 文档

要使用 Microsoft Word,您必须首先创建一个 Microsoft.Office.Interop.Word.Application实例。 在这种情况下,将使用 Word 文档进行交流。 下一步是使用我们刚刚创建的 Microsoft.Office.Interop.Word.Application 实例的 Documents 属性创建一个新的 Word 文档实例。 从下面的 C# 代码节选中可以看出,这可以让我们以编程方式操作 Word 文档

using System;
using System.Data;
using Microsoft.Office.Interop.Word;
try
{
    var WordApp = new Microsoft.Office.Interop.Word.Application();
    var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
    WordDoc.Paragraphs [1].Range.Text = "New text here...";
    WordDoc.SaveAs(@"d:/NewDemo.docx");
    WordDoc.Close();
    WordApp.Quit();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
using System;
using System.Data;
using Microsoft.Office.Interop.Word;
try
{
    var WordApp = new Microsoft.Office.Interop.Word.Application();
    var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
    WordDoc.Paragraphs [1].Range.Text = "New text here...";
    WordDoc.SaveAs(@"d:/NewDemo.docx");
    WordDoc.Close();
    WordApp.Quit();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
Imports System
Imports System.Data
Imports Microsoft.Office.Interop.Word
Try
	Dim WordApp = New Microsoft.Office.Interop.Word.Application()
	Dim WordDoc = WordApp.Documents.Open("d:/Demo.docx")
	WordDoc.Paragraphs (1).Range.Text = "New text here..."
	WordDoc.SaveAs("d:/NewDemo.docx")
	WordDoc.Close()
	WordApp.Quit()
Catch ex As Exception
	Console.WriteLine(ex.ToString())
End Try
VB   C#

在上述代码中,我们能够用 C# 编辑 Word 文档。 首先,我们要为 Interop 使用的文字处理器创建一个项目对象。 在所创建对象的帮助下,我们可以通过该对象的打开方式传递现有 Word 文件名。 它可以帮助我们将文件转换为文档对象。

通过使用文档对象,我们可以获得与现有 Word 文档相关的所有可用流程。 然后,我们使用段落对象获取 DOCX 文件中的所有内容。 使用数组,我们可以通过在数组中传递特定段落来替换每个段落的文本。 然后,我们可以将它们以 DOCX 文件的形式保存到新的 MS Word 文档中。我们还可以使用 Interop.NET 创建 Word 文档。

IronXL 库替代 Interop

IronXLMicrosoft Interop 是 Microsoft Interop 的替代工具,可用于 .NET 程序中处理 Excel 文件。 Microsoft Interop 需要通过 Interop 程序集与 Excel 进行交互,而 IronXL 则提供了一种更直接、更有效、更强大的方法,可在 .NET 环境中以编程方式操作 Excel 文件。

利用 IronXL 代替 Microsoft Interop 有以下几个好处:

  • 性能和资源效率:IronXL.Excel 依赖于计算机上安装的 Excel 应用程序,与 Microsoft Interop 相比,IronXL.Excel 不依赖于 Excel 应用程序,因此性能更好,占用资源更少。
  • 易用性和简单性:IronXL.Excel 提供了更易于使用的应用程序接口(API),可简化 Excel 文件的读写和操作,而不会像 Microsoft Interop 那样带来复杂性。
  • 兼容性和依赖性:IronXL.Excel 不需要在计算机上安装 Microsoft Excel,从而消除了各种版本 Excel 或 Office 可能出现的依赖性和兼容性问题。
  • 平台独立性:IronXL 与 Microsoft Interop 不同,后者可能与特定的 Microsoft Office 版本有更密切的联系,而 IronXL 则具有更大的灵活性,易于在各种环境和平台上部署。

    对于必须以编程方式操作 Excel 文件的 .NET 开发人员来说,IronXL.Excel 通常是更好的选择,因为它易于使用、速度快,而且减少了对第三方软件安装的依赖。 不过,在 IronXL 和 Microsoft Interop 之间做出决定,可能会受到项目的特殊性、已有的基础设施以及用户对每个库的专业水平的影响。

    在选择这些方案时,请始终牢记您的应用程序的要求。 查看访问链接了解有关 IronXL 图书馆的更多信息。

安装IronXL库

由于即将推出的补丁需要 IronXL 库,因此请安装它。 要完成这项工作,请打开 NuGet 包管理器控制台并键入以下命令:

Install-Package IronWord

如何使用 C# 操作 Word 文档:图 6 - 使用控制台命令安装 IronXL

通过 NuGet 软件包管理器搜索软件包 "IronXL "是一个额外的选择。从这个链接到 IronXL 的每个 NuGet 软件包列表中,我们可以选择需要下载的软件包。

如何使用 C# 操作 Word 文档:图 7 - 通过浏览安装 IronXL.Excel 软件包

使用 IronXL.Excel 编辑 Excel 文档

只需几行代码即可将数据导出为.XLSX 或.XLS 格式。 下面的源代码示例展示了如何将数据从 Excel 文件导出为简单的表格格式:

var workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx");
WorkSheet ws = workbook.GetWorkSheet("Sheet1");
string address_val = ws ["A1"].ToString();
console.writeline(address_val);
ws ["A2"].Value = "Hello World";
workbook.SaveAs("export.xlsx");
//or
workbook.SaveAs("export.xls");
//or
workbook.WorkSheets [0].SaveAs("export.xls");
var workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx");
WorkSheet ws = workbook.GetWorkSheet("Sheet1");
string address_val = ws ["A1"].ToString();
console.writeline(address_val);
ws ["A2"].Value = "Hello World";
workbook.SaveAs("export.xlsx");
//or
workbook.SaveAs("export.xls");
//or
workbook.WorkSheets [0].SaveAs("export.xls");
Dim workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx")
Dim ws As WorkSheet = workbook.GetWorkSheet("Sheet1")
Dim address_val As String = ws ("A1").ToString()
console.writeline(address_val)
ws ("A2").Value = "Hello World"
workbook.SaveAs("export.xlsx")
'or
workbook.SaveAs("export.xls")
'or
workbook.WorkSheets (0).SaveAs("export.xls")
VB   C#

上一个示例通过调用 LoadExcel 函数加载了一个已经存在的 Excel 文件,该函数的参数包括文件路径和名称。 将文件导入 "Workbook "对象的工作现已完成。 然后,我们将借助 "GetWorkSheet "加载 Excel 工作表,它允许我们使用工作表名称加载工作表。 然后使用 Excel 地址读取数值。 要了解有关阅读 Excel 文件的更多信息,请单击这里.

我们可以通过使用相同的 Excel URL 来更改 Excel 表的值。 可以利用 "工作簿 "对象提供的 "SaveAs "功能将 Excel 文档保存为 XLSX 或 XLS 文件。 使用此流程,整个文件将以所选格式保存。

如何使用 C# 操作 Word 文档:图 8 - 控制台输出

此外,我们还可以通过索引值或名称来选择某个 Excel 工作表。 接下来,我们可以使用 "SaveAs "选项将 Excel 电子表格中的数据导出到另一个文件。 点击此处链接了解有关格式化和导出 Excel 文件的更多信息。

结论

Excel最受欢迎的附加组件之一是IronXL。 它不依赖任何额外的外部库。 由于 Microsoft Excel 是自带的,因此无需安装。 它通过多种渠道运作。 这与 Interop 库形成鲜明对比,后者必须使用额外的库来解析文件,以便编辑 Word 文档。

IronXL.Excel 是适用于任何利用 Microsoft Excel 文档进行编程过程的完整解决方案。 计算、对字符串或数字排序、剪枝、添加、查找和替换、合并和取消合并以及文件存储只是众多可用操作中的一小部分。 不仅可以验证电子表格数据,还可以构建新形式的单元格数据。 它有助于读写文件和处理 Excel 数据。

IronXL 刚发布时的价格为 $749。 此外,客户还可以选择支付一年的订阅费来获得软件更新和支持。 IronXL 将提供安全保障,防止未经授权的再分发。 转到 IronXL 许可页码. 要了解有关 Iron Software 产品的更多信息,请查看这里.

< 前一页
如何使用C#读取Word文件
下一步 >
如何在C#中创建Word文档

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

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