C#保存Word文档而不提示给出“文档在其他地方打开错误”

本文关键字:文档 其他 方打开 错误 Word 保存 提示 | 更新日期: 2023-09-27 18:33:27

我有一个包含Office Word的Windows表单。我正在使用代码以编程方式打开word文档(_wd的类型为Microsoft.Office.Interop.Word.ApplicationClass - 我使用的是VS 2012,.NET 4.5,Office 2007(:

 public void LoadComponent(string path)
    {            
        if (_wd.Documents.Count != 0) _wd.ActiveDocument.Close(); 
        _wd.Documents.Add(ref path);
    }

当我想保存活动文档时,我的问题出现了。我不希望出现保存提示 - 这是我尝试过的,无法取消提示对话框:

_白矮星。ActiveDocument.Save = true;
_白矮星。ActiveDocument.Save((;

如果我尝试:

_白矮星。ActiveDocument.SaveAs(_filePath, Type.Missing, Type.Missing, Type.Missing, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失, 类型.缺失,类型.缺失(;

我收到异常:"Word 无法保存此文件,因为它已在其他地方打开"- 但它仅在我的应用程序中打开,没有其他地方打开。如何以编程方式保存没有保存提示对话框打开的Word文档?有趣的是,即使我尝试通过按"保存"按钮保存文档,我也会收到保存提示对话框 ->就像以前没有在光盘上创建文档一样。但是,文档是从光盘打开的,只是以编程方式打开。如果我使用Word打开文档,然后按"保存",则从未收到保存提示对话框。

C#保存Word文档而不提示给出“文档在其他地方打开错误”

我收到异常:"Word 无法保存此文件,因为它已经 在别处开。

仅当您的文档在另一个 Application 实例中打开时,才应收到此消息。

以下示例对我有用,并且没有提示:

var path = @"C:'Temp'temp.docx";
Word.Application wordApp = new Word.Application();
Word.Documents documents = wordApp.Documents;
Word.Document doc = documents.Add(path);
doc.Range().Text = "Test Text";
doc.SaveAs2(path);
wordApp.Quit();

在任务管理器中检查 WINWORD.EXE 进程的杂散实例。 如果 Application 的实例未正确关闭(以编程方式(,则可能会发生它们。

其中一个杂散过程可能是保持您的Document打开状态。

似乎你不是唯一一个过期它的人。可能是 MSWORD 中的一个错误。正如这里建议的

·         Click on start->run.
·         Type %appdata% and click ok.
·         Go to Microsoft->templates folder and delete Normal.dotm.
·         Restart word