解析Office文档

时间:2020-03-06 14:32:41  来源:igfitidea点击:

我希望能够阅读Office文档的内容(对于自定义搜寻器)。

需要可读的Office版本是2000到2007年。我主要想抓取word,excel和powerpoint文档。

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

该爬虫基于lucene.NET,如果有帮助,可以使用c#。

我已经使用iTextSharp来解析PDF

解决方案

有一个出色的开源项目POI,唯一的缺点是它是为Java编写的。
.net端口某种程度上是beta。

这是Krishnan LN在c-charpcorner上的一篇不错的小文章,它提供了基本代码,可以使用Word Primary Interop程序集从Word文档中获取文本。

基本上,我们从Word文档中获得了" WholeStory"属性,将其粘贴到剪贴板中,然后将其从剪贴板中拉出,同时将其转换为文本格式。大概完成了剪贴板步骤以去除格式。

对于PowerPoint,我们执行类似的操作,但是需要循环浏览幻灯片,然后为每个幻灯片循环浏览形状,并在每个形状中获取" TextFrame.TextRange.Text"属性。

对于Excel,由于Excel可以是OleDb数据源,所以最容易使用ADO.NET。这是Laurent Bugnion撰写的一篇很好的文章,介绍了该技术。

这是将Word文档转换为纯文本的各种工具的好清单,然后我们可以执行任何操作。

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

我们也可以考虑签出DtSearch(www.DtSearch.com)。尽管它主要是一种搜索工具,但是它在从大量文件类型中提取文本方面做得很好,并且比其他选择(如Oracle / Stellent OutsideIn技术或者Autonomy的同类工具)便宜得多。

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