使用Open XML读取已打开的Word文档?

时间:2012-03-28 02:13:54

标签: ms-word openxml

我见过的所有示例和实现都采用了某种类型的代码,如:

//filePath is some path to a docx file
using (WordprocessingDocument wpd = WordprocessingDocument.Open(filePath, true))
{
    //Do stuff here
}

需要关闭您的文件。我希望能够在已经打开的文档上使用Open XML SDK操作,因为我希望在用户主动查看文档时做一些事情,而我不一定要保存它。

这可能吗?我意识到如果文档打开,Word可能会锁定文档,因此您无法打开文件(即使是只读文件)。有什么方法吗?

如果我能以某种方式在已打开的文档上使用Open XML SDK,那真的很好。我有一个想法是暂时保存已打开的文件,并在临时文件上运行OpenXML内容,并以某种方式使用Office API将其与现有文档进行协调。 Haven没有想到这种方法,但这并不是我想要做的理想方式。

我也知道Word API上的一个属性,它通过Word.Range.XML返回一个XML字符串。但是,我不确定如何将此字符串值加载到SDK中,以便我可以利用其方法来帮助我。

2 个答案:

答案 0 :(得分:11)

您可以打开Word文档打开XML SDK,文件已经由办公室打开。 您应首先打开FileStream,然后打开指定此流的word文档。这是一个例子:

using (Stream stream = new FileStream(file,FileMode.Open,FileAccess.Read,FileShare.ReadWrite))
{
 using (WordprocessingDocument wpd = WordprocessingDocument.Open(stream, false))
 {
  ....
 }
}

答案 1 :(得分:1)