Как загрузить текст документа MS Word В C# (.NET)?
Как загрузить документ MS Word (.док и. docx) в память (переменную) без этого?:
wordApp.Документы.Открыть
Я не хочу открывать MS Word, я просто хочу, чтобы этот текст внутри.
вы дали мне ответ для DOCX, но как насчет DOC? Я хочу бесплатное и высокопроизводительное решение-не открывать 12.000 экземпляров Word для обработки всех из них. : (Aspose-коммерческий продукт, а 900$ - это слишком много для того, что я делаю.
7 ответов
вы можете использовать wordconv.exe, который является частью пакета совместимости Office для преобразования из doc в docx.
просто вызовите команду так: "C:\Program файлы\Microsoft Office\Office12\wordconv.exe " - oice - NME InputFile OutputFile
Я не уверен, что вам нужно установить word для его запуска, но он работает. Я использую его локально как команда оболочки windows для преобразования старых файлов office в формат 2007, когда я хочу.
для документов Word в формате docx я нашел эту интересную статью о CodeProject
использование DocxToText для извлечения текста из файлов DOCX
в статье автор обсуждает удаление только самих слов.
для ваших документов doc (non-docx) Word, кроме использования API Office и (в фоновом режиме) создания экземпляра Word, вы можете попробовать развернуть один из многих различных конвертеров Doc2Docx на рынок, а затем применение вышеуказанного процесса для обоих.
Если вы имеете дело с docx, вы можете сделать это, не делая никакого взаимодействия с Word .docx файл на самом деле ZIP содержит XML-файл , вы можете прочитать XML Пожалуйста, обратитесь к приведенным ниже ссылкам
http://conceptdev.blogspot.com/2007/03/open-docx-using-c-to-extract-text-for.html
недавно я провел некоторые исследования по этой теме. Оказывается, чтобы иметь возможность программно манипулировать файлами word без открытия самого word, вам нужны очень дорогие инструменты.
есть статья в код проекта по манипулированию Word, вы можете найти это полезным. Автор создает оболочку C# COM для обработки вызовов Word. Похоже, что он на самом деле открывает приложение word.
этот пост в neowin форумы выглядит многообещающе. Он включает в себя довольно много PInvoked вызовов с целью извлечения текста.
возможно, если бы вы могли найти способ сохранить окно скрытым, это было бы приемлемо.
Aspose имеет компонент для чтения, изменения и записи документов Word. Вот ссылка на продукт : Aspose.Слова для .NET и Java
Aspose.Слова включает .NET и Java приложений для чтения, изменения и записи Документы Word® без использования программа Microsoft Word.® Aspose.Слова поддерживает широкий спектр функций, включая создание документов, их содержание и управление форматированием, мощная почта возможности слияния, всесторонняя поддержка из DOC, OOXML, РТФ элемента wordprocessingml, Форматы HTML, OpenDocument и PDF. Aspose.Слова действительно самые доступный, быстрый и многофункциональный Компонент Word на рынке.
С docxtemplater, вы можете легко получить полный текст Слова (работает только с docx).
вот код (узел.В JS)
DocxTemplater=require('docxtemplater');
doc=new DocxTemplater().loadFromFile("input.docx");
result=doc.getFullText();
Это всего лишь три строки кода и не зависит от какого-либо экземпляра слова (все простые JS)
Я не хочу быть антагонистом, но почему?
я извлек данные из документов Word на серверах Linux с помощью Word2X или AbiWord и в зависимости от количества и разнообразия документов всегда будут ошибки при извлечении. Это хуже, чем больше пуль, разрывов страниц, разделов документов и других "специальных" функций.
Я понимаю, что теперь есть варианты автоматизации OpenOffice для обработки документов, но мой совет, если вы можете, просто используйте Word для обработки документов Word.