关闭时禁用Interop.Excel的默认保存提示

时间:2017-03-16 10:22:26

标签: c#

我正在使用

将一堆计算数据保存到excel文件中
if (result == DialogResult.OK && saveFileDialog1.FileName != "")
        {
            xl.DisplayAlerts = false;
            wb.SaveAs(fn, XlFileFormat.xlOpenXMLWorkbook, Missing.Value,
            Missing.Value, false, false, XlSaveAsAccessMode.xlNoChange,
            XlSaveConflictResolution.xlUserResolution, true,
            Missing.Value, Missing.Value, Missing.Value);

            wb.Close(true, misValue, misValue);
            xl.Quit();

            releaseObject(ws);
            releaseObject(wb);
            releaseObject(xl);
        }
        else if (result == DialogResult.Cancel)
        {
            wb.Close(true, misValue, misValue);
            xl.Quit();
            releaseObject(ws);
            releaseObject(wb);
            releaseObject(xl);
        }

当我按OK时一切正常,但如果我CANCEL保存,那么另一个“通用”保存窗口会显示出来吗?我在项目中没有其他SaveFileDialogs,我的假设是它来自Excel对象保存文件对话框,但我真的不知道如何摆脱这个?

xlinterop对象,ws是工作表,wb是工作簿

TA

1 个答案:

答案 0 :(得分:2)

设置'保存'在调用Close方法之前,工作簿的属性为true。

像这样:

else if (result == DialogResult.Cancel)
        {
            wb.Saved = true;
            wb.Close(true, misValue, misValue);
            xl.Quit();
            releaseObject(ws);
            releaseObject(wb);
            releaseObject(xl);
        }

希望这会有所帮助。