解析Office文档

时间:2008-09-22 15:18:26

标签: c# asp.net ms-office

我希望能够阅读办公文档的内容(针对自定义抓取工具)。

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

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

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

我已经使用iTextSharp解析PDF

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

Here是将Word文档转换为纯文本的各种工具的良好列表,然后您就可以使用它了。

答案 3 :(得分:0)

这是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,它介绍了这种技术。

答案 4 :(得分:0)

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

我多年来一直在使用DtSearch,并认为这类任务不可或缺。