软件的发行说明有一些我想在每个发行版中提取的重要数据。有没有办法从 Microsoft Word 中提取某些信息?
我正在考虑的应用程序将用 C# 编写,但如果它是任何其他解决方案,我可以。
软件的发行说明有一些我想在每个发行版中提取的重要数据。有没有办法从 Microsoft Word 中提取某些信息?
我正在考虑的应用程序将用 C# 编写,但如果它是任何其他解决方案,我可以。
所有 MS Office 产品(Word、Office 等)在内部(使用 VBA)和外部(通过OLE 自动化,也称为 ActiveX;实际上,VBA 使用通过 OLE 公开的界面)都是完全可编写脚本的。
我的建议是在您的语言中寻找支持此功能的库。 这是一个 Perl 模块的链接Win32::OLE
,它确实如此:如您所见,它非常易于使用且功能强大。其他语言的界面应该类似。
几年前我经历过这个。你可以:
使用 Word 将文件转换为其他格式,ASCII、RTF、XML 等。
使用某些第三方应用程序转换为另一种格式,例如 ASCII。
通过 OLE 访问 Word API 并直接提取信息。
我找不到任何通用库来读取 Word 文件,当时所有读取 Word 文件的应用程序只适用于一个子集。词的变化太频繁了,以至于他们很难跟上。
有一些文档列出了旧 Word 文件格式的细节,底层文件结构异常复杂。如果没有大量资源,就很难使代码与文件格式保持同步。
最初,我使用 Perl 驱动 Word 并创建新文档,但解决方案太脆弱了。后来我将整个应用程序改为使用 PDF,并放弃了 Word。
保罗。
可能不是最优雅的解决方案,但这似乎是最简单的方法:使用 Cscript。
刚刚在一个示例 word doc(2003) 上尝试过它,它工作得很好。
更多信息:http ://www.gregthatcher.com/Papers/VBScript/WordExtractScript.aspx
我用 VSTO(Visual Studio Tools for Office)工具做了很多 excel 编程,我想你将能够使用 VSTO API 来阅读 word 文档。你应该能够使用 C#
您可以编写一个IFilter来从 word 文件中提取文本。无需安装 Word。
您可以在 Word(VBA、VSTO)内部或外部工作。
从外部来看,自动化是一种方法。
另一个是完全避免使用 Word。如果文档是 .docx,您可以使用任何可以操作 Open XML 文件的东西。Microsoft 有其 Open XML SDK,在 Java 世界中,您可以使用 docx4j 或 POI。