2008-09-22 112 views
2

我希望能够阅读Office文档的内容(对于自定义爬网程序)。解析Office文档

需要可读的办公版本是从2000年到2007年。我主要想抓取单词,excel和powerpoint文档。

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

该爬虫基于lucene.NET,如果这可以是一些帮助,并在c#中。

我已经使用iTextSharp的解析PDF

回答

1

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

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

对于PowerPoint,你做类似的事情,但你通过幻灯片需要循环,然后通过形状各幻灯片循环播放,并抢在每个形状的“TextFrame.TextRange.Text”属性。

对于Excel,由于Excel可以是OleDb数据源,因此使用ADO.NET最为容易。这是一个good post by Laurent Bugnion,通过这种技术。

1

有一个外观极好开源项目POI,唯一的缺点 - 它是为Java编写。 .net port在某种程度上非常不稳定。

1

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

3

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

0

你也可以考虑检查DtSearch(www.DtSearch.com)。虽然它主要是一种搜索工具,但它在从大量文件类型中提取文本方面做得非常出色,并且比其他选项(如Oracle/Stellent OutsideIn技术或Autonomy的相当的选项)便宜得多。

我一直在使用DtSearch多年,并发现这种类型的任务不可或缺。