Разбор офисных документов - PullRequest
3 голосов
/ 22 сентября 2008

Я хотел бы иметь возможность читать содержимое офисных документов (для специального сканера).

Офисная версия, которая должна быть читаема, доступна с 2000 по 2007 год. В основном я хочу сканировать слова, документы Excel и PowerPoint.

Я не хочу получать форматирование, только текст в нем.

Искатель основан на lucene.NET, если это может помочь, и находится в c #.

Я уже использовал iTextSharp для анализа PDF

Ответы [ 5 ]

3 голосов
/ 22 сентября 2008

Если вы уже используете Lucene.NET, вы можете просто воспользоваться преимуществами различных фильтров IFilter, уже доступных для этого. Взгляните на проект с открытым исходным кодом SeekAFile . Он покажет вам, как использовать IFilter для открытия и извлечения этой информации из любого типа файла, где доступен IFilter. Существуют фильтры IF для Word, Excel, Powerpoint, PDf и большинства других распространенных типов документов.

1 голос
/ 22 сентября 2008

Здесь - это хороший список различных инструментов для преобразования документов Word в открытый текст, с которыми вы можете делать все, что угодно.

1 голос
/ 22 сентября 2008

Отличный проект с открытым исходным кодом POI , единственный недостаток - он написан для Java. .net порт как-то очень бета.

0 голосов
/ 25 июня 2009

Вы можете также рассмотреть возможность проверки DtSearch (www.DtSearch.com). Хотя это в первую очередь инструмент поиска, он отлично справляется с извлечением текста из большого количества типов файлов и значительно дешевле, чем другие варианты, такие как технология Oracle / Stellent OutsideIn или аналог Autonomy.

Я использую DtSearch в течение многих лет и считаю его незаменимым для задач такого типа.

0 голосов
/ 22 сентября 2008

Вот замечательный небольшой пост на c-charpcorner от Кришнана Л.Н., который дает базовый код для извлечения текста из документа Word с использованием сборок Word Primary Interop.

По сути, вы получаете свойство «WholeStory» из документа Word, вставляете его в буфер обмена, затем вытаскиваете из буфера обмена при преобразовании его в текстовый формат. Предполагается, что шаг буфера обмена выполняется для удаления форматирования.

Для PowerPoint вы делаете аналогичную вещь, но вам нужно циклически перемещаться по слайдам, затем для каждого слайд-цикла по фигурам и захватывать свойство "TextFrame.TextRange.Text" в каждой фигуре.

Для Excel, поскольку Excel может быть источником данных OleDb, проще всего использовать ADO.NET. Вот хороший пост Лорана Бюньона , в котором описывается эта техника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...