从打开的Microsoft Word文档中提取文本

时间:2013-12-21 05:50:09

标签: c# ms-word ms-office

我需要从打开的word文档中提取文本(使用C#,VS2012)。我一直收到“无法访问文件的错误,因为它正被另一个进程使用”。这有什么工作吗?所以我可以在Microsoft Word中打开文档时以编程方式提取文本?

2 个答案:

答案 0 :(得分: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程序集。

答案 1 :(得分:0)

我找到了解决这个问题的中间方法:我复制文件,然后从该副本中提取文本。复制也可以在使用后删除。