【问题标题】:How to parse text from MS Word document to string如何将 MS Word 文档中的文本解析为字符串
【发布时间】:2013-07-16 12:36:12
【问题描述】:

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

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

【问题讨论】:

  • .doc.docx? .doc 是 MS Word 2003 和更早的格式 - 我不相信它们是像 .docx 这样的 XML 文档
  • 所有文件都是.doc格式

标签: c# parsing text ms-word


【解决方案1】:

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-Automationhttp://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

【讨论】:

    【解决方案2】:

    你可以看看NPOI:

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

    查看this 以前的 SO 线程以获取更多信息。

    【讨论】:

    • 如何在我的解决方案中准确引用该项目?
    • @mathinvalidnik:您通常会下载所需的 DLL 文件并将它们包含在您的参考资料中。或者,假设这些 DLL 位于其存储库中,您可以获取 Visual Studio (NuGet) 的插件来为您执行此操作。
    • 我真的不知道该选择哪些以及以后如何使用它们(实例化类,使用它们的方法等等)。
    • @mathinvalidnik:通常您只需下载 DLL 并从您的项目中创建一个引用。这将反过来使 Visual Studio 导入您的 DLL 中指定的代码,以便您可以使用它。您应该能够在网上找到大量有关如何执行此操作的教程。
    • 是的,我知道应该怎么做,但我特别提到了 GitHub 上的这个 NPOI 项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 2011-01-15
    • 2012-10-22
    相关资源
    最近更新 更多