2013-12-21 56 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

我发现了一些中间的方式来解决这个问题:我做了一个文件的副本,然后从该副本中提取文本。复制也可以在使用后删除。