Лучший способ извлечь данные из Microsoft Word - PullRequest
1 голос
/ 31 марта 2009

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

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

Ответы [ 6 ]

1 голос
/ 06 мая 2011

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

Только что попробовал его на примере слова doc (2003), и он отлично работает.

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

1 голос
/ 31 марта 2009

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

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

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

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

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

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

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

Paul.

1 голос
/ 31 марта 2009

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

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

0 голосов
/ 02 апреля 2009

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

С внешней стороны, автоматизация является одним из подходов.

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

0 голосов
/ 31 марта 2009

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

0 голосов
/ 31 марта 2009

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

...