Как загрузить текст документа MS Word в C # (.NET)? - PullRequest
6 голосов
/ 19 октября 2008

Как загрузить документ MS Word (.doc и .docx) в память (переменную) без этого?:

wordApp.Documents.Open

Я не хочу открывать MS Word, я просто хочу этот текст внутри.

Вы дали мне ответ для DOCX, но как насчет DOC? Я хочу бесплатное и высокопроизводительное решение - не открывать 12.000 экземпляров Word для обработки всех из них. :( Aspose - коммерческий продукт, а 900 $ - это слишком много для того, что я делаю.

Ответы [ 7 ]

4 голосов
/ 30 ноября 2008

Вы можете использовать wordconv.exe, входящий в состав пакета обеспечения совместимости Office, для преобразования из doc в docx.

http://www.microsoft.com/downloads/details.aspx?familyid=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=en

Просто вызовите команду так: "C: \ Program Files \ Microsoft Office \ Office12 \ wordconv.exe" -oice -nme InputFile OutputFile

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

2 голосов
/ 19 октября 2008

Для документов Word в формате docx я нашел эту интересную статью в The CodeProject

Использование DocxToText для извлечения текста из файлов DOCX

В статье автор обсуждает выделение только самих слов.

Для ваших документов Word (не в формате docx), кроме использования API-интерфейсов Office и (на заднем плане) создания экземпляра Word, вы можете попробовать передать его одному из множества различных конвертеров Doc2Docx на рынке и затем применить выше процесс для обоих.

2 голосов
/ 19 октября 2008

Если вы имеете дело с docx, вы можете сделать это без какого-либо взаимодействия с Word Файл .docx на самом деле ZIP содержит файл XML, вы можете прочитать XML Пожалуйста, обратитесь по ссылкам ниже

http://conceptdev.blogspot.com/2007/03/open-docx-using-c-to-extract-text-for.html

Office (2007) Форматы файлов Open XML

1 голос
/ 21 октября 2008

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

В проекте кода по манипулированию Word есть статья, которая может оказаться полезной. Автор создает оболочку C # COM для работы с вызовами в Word. Похоже, что это на самом деле открывает приложение Word, хотя.

Этот пост на форумах neowin также выглядит многообещающе. Он включает в себя довольно много вызовов PInvoked для извлечения текста.

Возможно, если бы вы могли найти способ скрыть окно, это было бы приемлемо.

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

С docxtemplater вы можете легко получить полный текст слова (работает только с docx).

Вот код (Node.JS)

DocxTemplater=require('docxtemplater'); doc=new DocxTemplater().loadFromFile("input.docx"); result=doc.getFullText();

Это всего три строки кода и не зависит ни от одного экземпляра слова (все простые JS)

0 голосов
/ 21 октября 2008

Aspose имеет компонент для чтения, изменения и записи документов Word. Вот ссылка на продукт: Aspose.Words для .NET и Java

Aspose.Words включает .NET и Java приложения для чтения, изменения и записи Документы Word® без использования Microsoft Word®. Aspose.Words поддерживает широкий спектр функций, включая создание документов, содержание и манипулирование форматированием, мощная почта способности слияния, всесторонняя поддержка DOC, OOXML, RTF, WordprocessingML, HTML, OpenDocument и PDF форматы. Aspose.Words действительно самый доступный, быстрый и многофункциональный Компонент Word на рынке.

0 голосов
/ 20 октября 2008

Я не хочу быть антагонистом, но почему?

Я извлек данные из документов Word на серверах Linux, используя Word2X или AbiWord, и в зависимости от количества и разнообразия документов всегда будут ошибки при извлечении. Это тем хуже, чем больше маркеров, разрывов страниц, разделов документов и других «специальных» функций.

Я понимаю, что теперь есть варианты для автоматизации OpenOffice для обработки документов, но я советую, если вы можете, просто использовать Word для обработки документов Word.

...