Лучший способ извлечь данные из Microsoft Word

В примечаниях к выпуску программного обеспечения есть некоторые важные данные, которые я хотел бы извлекать в каждом выпуске. Есть ли способ извлечь определенную информацию из Microsoft Word?

Приложение, о котором я думаю, будет написано на C#, но я не против, если это любое другое решение.


person Community    schedule 31.03.2009    source источник


Ответы (6)


Все продукты MS Office (Word, Office и т. д.) полностью поддерживают сценарии как внутри (с использованием VBA), так и снаружи (через OLE Automation, также известный как ActiveX; на самом деле, VBA использует интерфейс, доступный через OLE).

Мое предложение состояло бы в том, чтобы найти библиотеку на вашем языке, которая поддерживает это. Здесь находится ссылка на модуль Perl, Win32::OLE, который делает: как видите, он довольно прост в использовании и очень мощен. Интерфейс должен быть аналогичным для других языков.

person j_random_hacker    schedule 31.03.2009

Я прошел через это несколько лет назад. Ты сможешь:

  1. Используйте Word для преобразования файла в какой-либо другой формат, ASCII, RTF, XML и т. д.

  2. Используйте стороннее приложение для преобразования в другой формат, например ASCII.

  3. Получите доступ к Word API через OLE и извлеките информацию напрямую.

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

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

Изначально я использовал Perl для управления Word и создания новых документов, но решение оказалось слишком хрупким. Позже я переключил все приложение на работу с PDF-файлами и отказался от Word.

Павел.

person Paul W Homer    schedule 31.03.2009

Вероятно, не самое элегантное решение, но это кажется самым легким методом: используйте Cscript.

Только что попробовал это на образце документа Word (2003), и он отлично работает.

Дополнительная информация: http://www.gregthatcher.com/Papers/VBScript/WordExtractScript.aspx< /а>

person Jx2    schedule 06.05.2011

Я много программировал в Excel с помощью инструментов VSTO (Visual Studio Tools for Office), я думаю, вы сможете использовать VSTO API для чтения текстового документа. Вы должны уметь использовать С#

person patrick    schedule 31.03.2009

Вы можете написать IFilter для извлечения текста из файлов word. Нет необходимости устанавливать Word.

person Darin Dimitrov    schedule 31.03.2009

Вы можете работать как внутри Word (VBA, VSTO), так и вне его.

Снаружи одним из подходов является автоматизация.

Другой — полностью отказаться от использования Word. Если документы имеют формат .docx, вы можете использовать все, что может манипулировать файлом Open XML. У Microsoft есть Open XML SDK, а в мире Java вы можете использовать docx4j или POI.

person JasonPlutext    schedule 01.04.2009