【发布时间】:2008-09-22 15:18:26
【问题描述】:
我希望能够阅读办公文档的内容(用于自定义爬虫)。
需要阅读的office版本是2000年到2007年的,主要是爬words,excel,powerpoint文档。
我不想检索格式,只检索其中的文本。
爬虫是基于 lucene.NET 的,如果它可以提供一些帮助的话,并且是在 c# 中。
我已经使用 iTextSharp 解析 PDF
【问题讨论】:
我希望能够阅读办公文档的内容(用于自定义爬虫)。
需要阅读的office版本是2000年到2007年的,主要是爬words,excel,powerpoint文档。
我不想检索格式,只检索其中的文本。
爬虫是基于 lucene.NET 的,如果它可以提供一些帮助的话,并且是在 c# 中。
我已经使用 iTextSharp 解析 PDF
【问题讨论】:
如果您已经在使用 Lucene.NET,您可能只想利用已经可用的各种 IFilter 来执行此操作。看看开源的SeekAFile 项目。它将向您展示如何使用 IFilter 从任何可用 IFilter 的文件类型中打开和提取此信息。有适用于 Word、Excel、Powerpoint、PDf 和大多数其他常见文档类型的 IFilter。
【讨论】:
Here 是一个很好的列表,列出了用于将 Word 文档转换为纯文本的各种工具,然后您可以使用这些工具进行任何操作。
【讨论】:
这是 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 介绍了这项技术。
【讨论】:
您也可以考虑查看 DtSearch (www.DtSearch.com)。虽然它主要是一个搜索工具,但它在从大量文件类型中提取文本方面做得很好,并且比其他选项(如 Oracle/Stellent OutsideIn 技术或 Autonomy 的同等技术)便宜得多。
我已经使用 DtSearch 多年,发现它对于此类任务是必不可少的。
【讨论】: