如何将MS Word文档中的文本解析为字符串

4

我正在尝试找到一种方法,在我的项目中将Word文档的文本解析为字符串。我有600多个Word(.doc)文件,需要获取每个文件的文本内容(如果可能的话,包括换行和制表符),并将其分配给一个字符串。

我一直在阅读关于Open XML SDK的资料,但对于看起来如此简单的东西来说,它看起来相当复杂。


.doc还是.docx.doc是MS Word 2003格式及更早版本,我认为它们不像.docx那样是XML文档。 - crush
1
所有文件都是以 .doc 格式保存的。 - mathinvalidnik
2个回答

5

Open XML SDK仅适用于2007及更新版本的格式,使用起来并不容易。

如果性能不是问题,您可以使用Word自动化让Word帮您完成此操作。大致如下:

var app = new Application();
var doc = app.Documents.Open(documentLocation);

string rangeText = doc.Range().Text;

doc.Save();
doc.Close();

Marshal.ReleaseComObject(doc);    
Marshal.ReleaseComObject(app);

请查看http://www.codeproject.com/Articles/18703/Word-2007-Automation 或者 http://www.codeproject.com/Articles/21247/Word-Automation 获取更为完整的例子和指令。请注意,如果您的文档更加复杂(如脚注、文本框、表格等),则可能会变得更加棘手。

另一种选择是让Word将文档保存为文本文件,然后读取该文本文件。请查看此链接 - http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.document.saveas(v=vs.80).aspx


1

你可以看一下NPOI

这个项目是 POI Java 项目的 .NET 版本,位于 http://poi.apache.org/。POI 是一个开源项目,可以帮助你读写 xls、doc、ppt 文件。它有广泛的应用。

查看this之前的 SO 帖子获取更多信息。


我该如何在我的解决方案中准确引用那个项目? - mathinvalidnik
@mathinvalidnik:通常情况下,您需要下载所需的DLL文件并将它们包含在您的引用中。或者,您可以为Visual Studio获取一个插件(NuGet)来代替您完成这个过程,前提是这些DLL文件在其存储库中。 - npinti
我不太确定该选择哪些类以及如何稍后使用它们(实例化类、使用它们的方法等)。 - mathinvalidnik
通常情况下,您只需下载DLL并从项目中创建一个引用。这将使Visual Studio导入DLL中指定的代码,以便您可以使用它。您应该能够在网上找到大量有关如何执行此操作的教程。 - npinti
是的,我知道应该怎么做,但我特别在谈论GitHub上的这个NPOI项目。 - mathinvalidnik
@mathinvalidnik:我刚刚下载了Beta版本,除了DLL文件之外,还有一些示例可以帮助你入门。如果你仍然遇到问题,我建议你联系NPOI的工作人员。 - npinti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接