2013-12-21 57 views
0

我需要從打開的Word文檔中提取文本(使用C#,VS2012)。我一直收到「無法訪問文件的錯誤,因爲它正在被另一個進程使用」。有沒有解決這個問題?所以我可以在Microsoft Word中打開文檔時以編程方式提取文本?從打開的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連接到word文檔,solrnet需要無限制訪問。文本提取正在被另一個應用程序。 – FrenkyB

0

我發現了一些中間的方式來解決這個問題:我做了一個文件的副本,然後從該副本中提取文本。複製也可以在使用後刪除。