【发布时间】:2012-04-11 14:48:44
【问题描述】:
我见过的所有示例和实现都使用某种类型的代码,例如:
//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 以某种方式将其与现有文档进行协调。没有考虑过这种方法,但这不是我想要的理想方法。
我还知道 Word API 上的一个属性,它通过执行 Word.Range.XML 返回 XML 字符串。但是,我不确定如何将此字符串值加载到 SDK,以便我可以利用它的方法来帮助我。
【问题讨论】:
-
当文件以只读方式打开时,它以只读方式打开,并且 Word(和大多数其他 Office 应用程序)确实会以该模式打开文件。 AFAIK,一旦它生效,就不可能告诉操作系统只读应该被忽略。 (这实际上很好 - 你能想象能够说“哎呀,忽略有人说他们想锁定文件以允许其他人只读访问,并无论如何都给我访问权限的事实。”可能产生的影响?)跨度>
-
是的,我完全理解为什么它被锁定了。我想我有一些想法,因为我们可以通过 Word API 操作文件,所以我可以对 Open XML 做同样的事情,但这是错误的。