Rohit027 Ответов: 1

Извлечь текст из документа Word с помощью C#


Кто-нибудь может сказать мне, как извлечь только необходимый текст из документа Word с помощью C#.

О документе Word:

Word document содержит несколько простых текстовых и аудиотекстов, и я хочу дифференцировать и извлечь этот текст из word doc в excel.

Раскадровка скриншот ссылка содержит простой текст и аудио текст, а также где вы можете увидеть 2 цвета текста синий и черный. Проблема заключается в том, чтобы идентифицировать текст черного цвета, потому что он имеет какой-то простой текст и аудиотекст, и я хочу, чтобы этот текст был помещен в Excel в отдельных столбцах, как показано на скриншоте выше.

и я могу извлечь текст из документа Word в Excel, но проблема в том, как я могу идентифицировать простой текст и аудио текст без изменения стиля и цвета шрифта.

Любая помощь в этом будет высоко оценена.

Заранее спасибо.

Что я уже пробовал:

Я следовал 2 подходам, но они не являются подходящим решением для меня-
1. добавьте отдельную закладку в качестве идентификатора для каждого текста, чтобы мы могли легко идентифицировать и извлечь текст.
2. измените стиль шрифта и цвет текста, который мы хотим извлечь.
но эти подходы отнимают много времени и не являются правильным решением для меня, поэтому у любого может быть другая идея, чтобы идентифицировать другой текст, пожалуйста, предложите.

U. G. Leander

Вы пробовали использовать OpenXML? Это довольно мощный (но плохо документированный) SDK. Может быть, это вам поможет.

Rohit027

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

1 Ответов

Рейтинг:
2

Vikrant Siwach

Вы можете попробовать сохранить документ Word в виде HTML-файла, а затем использовать Jquery для извлечения цветных элементов. Однако вам придется внести 2 изменения в сгенерированный HTML-файл.

1. Вставьте скрипт jQuery CDN

<script src="https://code.jquery.com/jquery-3.0.0.min.js" integrity="sha256-JmvOoLtYsmqlsWxa7mDSLMwa6dZ9rrIdtrrVYRnDRH0=" crossorigin="anonymous"></script>


2. вставьте пользовательский код jQuery.
var texts = $('span');
var fin = [];
$.each(texts, function(i,v){
if($(v).css('color') == 'rgb(0, 0, 0)')
{
fin.push($(v).text());
console.log($(v).text());
}
});


Вы можете использовать массив 'fin' по своему усмотрению. Я попробовал. Выполнять работу. :)