禁用互操作 Excel 的默认保存提示在关闭时



我正在使用将一堆计算数据保存到 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工作簿

助教

在调用 Close 方法之前,将工作簿对象的"已保存"属性设置为 true。

这样:

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

希望这会有所帮助。

最新更新