微软办公自动化FileSaveAs方法如何禁用覆盖现有文件提示?

11

我正在使用Ms Office Interop程序集创建MS Project文件。为了保存所创建的文件,我使用FileSaveAs方法,它会提示一个消息,询问是否要替换现有文件。 我想要抑制这个消息,但是我没有在FileSaveAs方法中找到任何参数来实现这个目的。 对此有什么想法吗?我正在使用C#作为编程语言。

2个回答

15

当我使用Excel Interop时,遇到了这个问题。 我能找到的最好解决方案是禁用 所有 的Office警报,像这样:

Microsoft.Office.Interop.MSProject.Application msProjectApp = new Microsoft.Office.Interop.MSProject.Application();
msProjectApp.DisplayAlerts = false;

1
不要双点COM对象,因为它们将无法释放,这将使Excel在您的服务器上保持开启状态。不幸的是,我曾因此而导致服务器崩溃。
private void InitialiseExcel()
{
    if (excelApp == null)
        excelApp = new Excel.Application();
    // Turn off User Prompts
    excelApp.DisplayAlerts = false;
    // Turn off screen updating so we do not get flicker
    var app = excelApp.Application;
    app.ScreenUpdating = false;
    // Specifies the state of the window;
    excelApp.WindowState = Excel.XlWindowState.xlMinimized;
    Marshal.ReleaseComObject(app);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接