文字工具

.NET 词库比较:找到最好的

发布 2024年三月26日
分享:

介绍

管理和操作 Word 文档是各种软件项目的共同要求。 有几个 .NET Word 库可以处理 Word 文档。

本文比较了用于处理 Word 文档的三个著名开源 .NET 库:Office IMO 和 FileFormat.Words,以及Microsoft Office Interop WordIronWord作为付费解决方案。

每个 .NET Word 库都有其独特的功能和局限性,理解这些特点可以帮助开发人员为他们的特定需求选择合适的工具。

办公室 IMO

.NET Word 库(免费与付费库比较):图 1 - Office IMO NuGet 软件包网页

**OfficeIMOMicrosoft Word 是一个免费的开放源码 .NET 库,其突出特点是用户友好,尤其是在处理 Microsoft Word 文档中的基本操作时。 无论是创建新文档、读取现有文件还是进行修改,OfficeIMO 都是一个值得信赖的库。

在速度和简洁性要求极高的项目中,该库尤其受益匪浅。 凭借其简单快捷的 API,我已经能够执行一些常见任务,如添加文本、格式化,甚至操作基本的文档元素(如页眉和页脚),而无需在文档中大费周章。 该库还支持在 Word 文档中添加图片和在文档中添加超链接等操作。 然而,当涉及到行间距等更高级的功能时,翻译就显得力不从心了。

优点

易用性: OfficeIMO 是快速建立项目的最佳库。 其 API 非常简单,无需大量设置即可轻松执行常见任务。

支持多个文档: 可同时处理多个 Word 文档,批量处理效率高。

转换能力: 该库将 Word 文档转换为其他格式的能力在我的多个项目中都是救星,尤其是在处理不同的客户需求时。

批量处理: 同时处理多个文档效率高、效果好,我发现这一功能在批量操作中特别有用。

幻灯片

有限的高级功能: 对于复杂的文档任务,OfficeIMO 的功能有所欠缺。 它非常适合基础知识,但在更复杂的操作方面却很吃力。

对 Microsoft Word 的依赖性: 必须安装 Microsoft Word 是一个重大缺陷,尤其是在不同的部署环境中。

FileFormat.Words

.NET Word 库(免费与付费库比较):图 2 - 文件格式网页

每当 Office IMO 的局限性变得明显时,特别是在进行更复杂的文档操作时,我的下一个选择就是FileFormat.Words. 该库是一个综合工具,在处理 Word 文档方面提供了更广泛的范围

FileFormat.Words 因其广泛的文件格式支持而脱颖而出,这对于涉及遗留文档或不同 Microsoft Word 版本的项目至关重要。 它的优势在于详细的文档操作能力,从复杂的邮件合并到自定义文档属性和处理 OLE 对象。

优点

广泛的文件格式支持: 该库处理各种文件格式以及转换 Word 文档的能力是最好的,尤其是在处理旧文档或非标准文档时。

高级文档元素操作: 可对文档元素进行详细操作,包括自定义文档属性和 OLE 对象。

无外部依赖性: 与其他一些库不同,FileFormat.Words 不需要 Microsoft Office 自动化,因此更适合服务器环境。

幻灯片

复杂性: 广泛的功能会增加复杂性,这可能会给初学者带来学习曲线。

性能影响: 在大型应用程序中,高级功能会影响性能,需要进行优化和仔细的资源管理。

Microsoft Office Interop Word

.NET Word 库(免费与付费库比较):图 3 - MS Office Interop Word 网页

在我需要对 Microsoft Word 文档进行深度整合和全面控制的情况下,我的最终选择是MS Office Interop Word. 该库是微软 Office 自动化套件的一部分,是 Word 文档操作领域的巨人,具有无与伦比的功能。

Interop Word 在直接提供 Microsoft Word 的全部功能方面表现出色。 这就像用编程的方式让 Word 的全部功能触手可及。

从文本编辑等简单任务到处理内置文档属性、格式化段落、执行邮件合并和处理 OLE 对象等更复杂的操作,该库涵盖了广泛的技术功能。 互操作还允许在文件类型之间进行转换。例如,您可以将 Word 转换为 PDF、将 Word 转换为图像、将 Word 转换为 RTF 以及将 Word 转换为 HTML。 以下是一些受支持的类型,展示了其广泛的范围。

优点

全面的功能范围: 它提供了一系列广泛的功能,与 Microsoft Word 本身的功能密切相关。

与 Word 的高保真: 无缝集成可确保文档操作与 Word 用户体验保持一致,这在我的许多项目中都是至关重要的因素。

详细控制: Word 文档元素的详细程度和控制是无与伦比的,可以进行精确而复杂的文档操作。

幻灯片

对 MS Office 的依赖性: 安装 MS Office 的要求是一个重大限制,会限制其在某些环境中的使用。

性能问题: 作为一种基于 COM 的互操作,它的效率可能较低,尤其是在服务器端或高性能应用程序中。

IronWord:无需 MS 的 DOCX 库

.NET Word 库(免费与付费库比较):图 4 - IronWord .NET无 MS 网页的 DOCX 库

IronWord该工具简化了与 Word 文件的交互,使开发人员无需在目标计算机上安装 Microsoft Word 即可读取、编写和编辑文档。对于需要在各种环境中部署的应用程序来说,这一功能尤为有益,因为在这些环境中,Microsoft Office 的存在无法得到保证。 在交叉组合的同时,它还支持各种版本的 .NET Core 和 .NET Framework。

该库的设计侧重于提供一种直接有效的文档管理方法,使开发人员能够将 Word 文档功能集成到他们的 .NET 应用程序中。 IronWord 支持 DOC 和 DOCX 等多种常用文件格式,使开发人员能够以高效可靠的方式处理 Word 文档的创建和操作。

IronWord 旨在弥合 .NET 应用程序与文档管理之间的差距,为需要整合文档处理功能的开发人员提供强大的解决方案,同时避免传统上与此类任务相关的复杂性。

使用样式化文本创建 DOCX

在这里,您可以看到我们如何创建带样式文本的 Word 文档使用 IronWord:

using IronWord;
using IronWord.Models;
using Color = IronSoftware.Drawing.Color;
// Initialize a new Word document
var document = new WordDocument();
// Define a new text style
var textStyle = new TextStyle
{
    FontFamily = "Arial", 
    FontSize = 24, 
    TextColor = new IronColor(Color.Blue), 
    IsBold = false, 
    IsItalic = false,
    IsUnderline = false, 
    IsStrikethrough = false,
    IsSuperscript = false, 
    IsSubscript = false 
};
// Create a text run with new text and style
var textRun = new TextRun
{
    Text = "Exploring Document Creation with IronWord",
    Style = textStyle
};
// Initialize a new paragraph
var paragraph = new Paragraph();
// Add the styled text run to the paragraph
paragraph.AddTextRun(textRun);
// Add the paragraph to the document
document.AddParagraph(paragraph);
// Save the modified document under a new name
document.SaveAs("updated_document.docx");
using IronWord;
using IronWord.Models;
using Color = IronSoftware.Drawing.Color;
// Initialize a new Word document
var document = new WordDocument();
// Define a new text style
var textStyle = new TextStyle
{
    FontFamily = "Arial", 
    FontSize = 24, 
    TextColor = new IronColor(Color.Blue), 
    IsBold = false, 
    IsItalic = false,
    IsUnderline = false, 
    IsStrikethrough = false,
    IsSuperscript = false, 
    IsSubscript = false 
};
// Create a text run with new text and style
var textRun = new TextRun
{
    Text = "Exploring Document Creation with IronWord",
    Style = textStyle
};
// Initialize a new paragraph
var paragraph = new Paragraph();
// Add the styled text run to the paragraph
paragraph.AddTextRun(textRun);
// Add the paragraph to the document
document.AddParagraph(paragraph);
// Save the modified document under a new name
document.SaveAs("updated_document.docx");
Imports IronWord
Imports IronWord.Models
Imports Color = IronSoftware.Drawing.Color
' Initialize a new Word document
Private document = New WordDocument()
' Define a new text style
Private textStyle = New TextStyle With {
	.FontFamily = "Arial",
	.FontSize = 24,
	.TextColor = New IronColor(Color.Blue),
	.IsBold = False,
	.IsItalic = False,
	.IsUnderline = False,
	.IsStrikethrough = False,
	.IsSuperscript = False,
	.IsSubscript = False
}
' Create a text run with new text and style
Private textRun = New TextRun With {
	.Text = "Exploring Document Creation with IronWord",
	.Style = textStyle
}
' Initialize a new paragraph
Private paragraph = New Paragraph()
' Add the styled text run to the paragraph
paragraph.AddTextRun(textRun)
' Add the paragraph to the document
document.AddParagraph(paragraph)
' Save the modified document under a new name
document.SaveAs("updated_document.docx")
VB   C#

利用 IronWord,我们可以格式化字体家族、字体大小、文本颜色和其他文本格式选项,所有这些都可以通过编程实现。 以下代码创建了一个名为 textStyle 的变量,用于保存文本格式的所有变量。 之后,textStyle 将被分配给新 TextRun 对象中的样式参数。 然后,示例用变量初始化一个新段落,将该段落添加到文档中,然后保存。 这样就可以通过修改 textStyle 变量中的参数轻松修改文本,展示 IronWord 的多功能性和灵活性。

输出

以下是代码的输出:

.NET Word 库(免费与付费库比较):图 5 - 上述代码示例输出的 Word 文档

结论

为 Word 文档操作选择合适的 .NET 库在很大程度上取决于您的具体项目需求。 Office IMO 适用于简单的任务,FileFormat.Words 适用于更复杂的场景,而 MS Office Interop Word 则适用于 Word 的深度集成。

作为开发人员,我们的选择应符合项目的要求,考虑到环境、所需文档操作的复杂性以及对 Word 文档的控制程度等因素。

IronWord 提供的翻译服务包括免费试用起价为 $749,其提供的广泛功能和便利性值得投资。

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

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