Как извлечь текст документа Word из массива байтов? - PullRequest
0 голосов
/ 27 сентября 2019

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

        StringBuilder text = new StringBuilder();
        Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
        object miss = System.Reflection.Missing.Value;
        object path = filePath;
        object readOnly = true;
        Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);

        for (int i = 0; i < docs.Paragraphs.Count; i++)
        {
            text.Append(" \r\n " + docs.Paragraphs[i + 1].Range.Text.ToString());
        }

        return text.ToString();

1 Ответ

1 голос
/ 28 сентября 2019

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

У меня был некоторый опыт работы с Syncfusion и его библиотекой DocIO, который может это сделать.У него есть бесплатная лицензия сообщества, поэтому его можно использовать для тестирования или для небольших групп.

Вы можете использовать его примерно так:

WordDocument doc = new WordDocument();
byte[] wordBytes = …
using (var ms = new MemoryStream(wordBytes))
{
     doc.Open(ms, FormatType.Automatic);
}

После того, как у вас есть документ Word, вы можете извлечьтекст из него.

Отказ от ответственности: я не имею отношения ни к компании Syncfusion, ни к ее сотрудникам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...