使用IRONWORD

如何使用 C# 操作 Word 文件

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

简介

微软公司创建 Word 的目的是作为一种文字处理器。该软件于 1983 年 10 月 25 日推出,最初的名称是用于 Xenix 系统的 Multi-Tool Word。随后又开发了适用于多种操作系统的版本,如 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 版本可作为独立的应用程序或作为以下程序的组件获得许可 微软 365IronXL 可作为永久许可证或 Microsoft 365 订阅的一部分购买。在本文中,我们将在 Microsoft Interop 程序集的帮助下使用 C# 操作 Word 文档,并探讨 IronXL 如何帮助我们编辑 Excel 文档。

如何使用 C&num 操作 Word 文档;

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

2.设置读取 Word 文档所需的库。

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

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

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

什么是微软 Interop

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

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

例如

  • 文字自动化所需的每台客户端 PC 都需要获得 Microsoft Word 的许可。
  • 每台客户电脑都必须安装相同版本的 Microsoft Word。
  • 在使用自动化功能时,Word 会使用几兆字节的 RAM 在后台加载不同的文件和 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 创建新项目文件

使用 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 使用的文字处理器创建一个项目对象。在创建的对象的帮助下,我们可以通过一个 open 方法传递现有的 Word 文件名。它可以帮助我们将文件转换为文档对象。

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

IronXL 库替代 Interop

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

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

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

对于必须以编程方式操作 Excel 文件的 .NET 开发人员来说,IronXL 往往是更好的选择,因为它易于使用、速度快,而且减少了对第三方软件安装的依赖。不过,在 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 文档

只需几行代码,即可将数据导出为.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 工作表。接下来,我们可以使用 "另存为 "选项将 Excel 电子表格中的数据导出到另一个文件。点击此处 链接 了解有关格式化和导出 Excel 文件的更多信息。

结论

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

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

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

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

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

免费NuGet下载 总下载量: 4,816 查看许可证 >