【问题标题】:Parsing Office Documents解析 Office 文档
【发布时间】:2008-09-22 15:18:26
【问题描述】:

我希望能够阅读办公文档的内容(用于自定义爬虫)。

需要阅读的office版本是2000年到2007年的,主要是爬words,excel,powerpoint文档。

我不想检索格式,只检索其中的文本。

爬虫是基于 lucene.NET 的,如果它可以提供一些帮助的话,并且是在 c# 中。

我已经使用 iTextSharp 解析 PDF

【问题讨论】:

    标签: c# asp.net ms-office


    【解决方案1】:

    如果您已经在使用 Lucene.NET,您可能只想利用已经可用的各种 IFilter 来执行此操作。看看开源的SeekAFile 项目。它将向您展示如何使用 IFilter 从任何可用 IFilter 的文件类型中打开和提取此信息。有适用于 Word、Excel、Powerpoint、PDf 和大多数其他常见文档类型的 IFilter。

    【讨论】:

      【解决方案2】:

      有一个优秀的开源项目POI,唯一的缺点 - 它是为 Java 编写的。 .net port 在某种程度上是测试版。

      【讨论】:

        【解决方案3】:

        Here 是一个很好的列表,列出了用于将 Word 文档转换为纯文本的各种工具,然后您可以使用这些工具进行任何操作。

        【讨论】:

          【解决方案4】:

          这是 Krishnan LN 的 nice little post on c-charpcorner,它提供了使用 Word Primary Interop 程序集从 Word 文档中获取文本的基本代码。

          基本上,您从 Word 文档中获取“WholeStory”属性,将其粘贴到剪贴板,然后在将其转换为文本格式时将其从剪贴板中拉出。剪贴板步骤大概是为了去除格式。

          对于 PowerPoint,您可以执行类似的操作,但您需要遍历幻灯片,然后为每个幻灯片循环遍历形状,并获取每个形状中的“TextFrame.TextRange.Text”属性。

          对于 Excel,由于 Excel 可以是 OleDb 数据源,因此使用 ADO.NET 是最简单的。这里有一个 good post by Laurent Bugnion 介绍了这项技术。

          【讨论】:

            【解决方案5】:

            您也可以考虑查看 DtSearch (www.DtSearch.com)。虽然它主要是一个搜索工具,但它在从大量文件类型中提取文本方面做得很好,并且比其他选项(如 Oracle/Stellent OutsideIn 技术或 Autonomy 的同等技术)便宜得多。

            我已经使用 DtSearch 多年,发现它对于此类任务是必不可少的。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-12-05
              • 2010-10-02
              • 2012-10-05
              • 2020-07-10
              • 2011-10-05
              • 1970-01-01
              相关资源
              最近更新 更多