Как загрузить текст документа MS Word в C# (.NET)?

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

wordApp.Documents.Open

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
0
22 047
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Если вы имеете дело с 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

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

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

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

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

Есть ли бесплатный документ для решения docx?

Skuta 20.10.2008 00:56

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

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

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

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

Skuta 21.10.2008 13:02

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

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

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

Может быть, если бы вы нашли способ скрыть окно, это было бы приемлемо.

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

Aspose.Words enables .NET and Java applications to read, modify and write Word® documents without utilizing Microsoft Word®. Aspose.Words supports a wide array of features including document creation, content and formatting manipulation, powerful mail merge abilities, comprehensive support of DOC, OOXML, RTF, WordprocessingML, HTML, OpenDocument and PDF formats. Aspose.Words is truly the most affordable, fastest and feature rich Word component on the market.

бесплатная библиотека, -> Задать: 899 долларов США

Skuta 21.10.2008 13:01
Ответ принят как подходящий

Вы можете использовать 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

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

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

Вот код (Node.JS)

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

Это всего лишь три строки кода и не зависит от какого-либо экземпляра слова (все простой JS)

Другие вопросы по теме