2013-12-21 3 views
0

Мне нужно извлечь текст (используя C#, VS2012) из ​​открытого документа Word. Я продолжаю получать сообщение об ошибке, которое «не может получить доступ к файлу, потому что оно используется другим процессом». Есть ли какая-нибудь работа вокруг этого? Таким образом, я могу извлечь текст программно, когда документ открывается в Microsoft Word?Извлечь текст из открытого документа Microsoft Word

ответ

2

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

using System; 
using Microsoft.Office.Interop.Word; 

namespace ConsoleApplication12 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var wordApp = (Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application"); 
      var words = wordApp.ActiveDocument.Words; 
      foreach (Range word in words) 
      { 
       Console.WriteLine(word.Text); 
      } 
     } 
    } 
} 

Не забудьте обратиться к сборке Word Interop.

+0

Спасибо за ответ, это хорошее решение. Но в моем случае solrnet подключается к текстовому документу, и solrnet нуждается в доступе без ограничений. Извлечение текста выполняется другим приложением. – FrenkyB

0

Я нашел какой-то средний способ решить эту проблему: я делаю копию файла, а затем извлекаю текст из этой копии. Копирование также можно удалить после использования.

Смежные вопросы