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