我正在使用将一堆计算数据保存到 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 对象保存文件对话框,但我真的不知道如何摆脱它?
xl
是interop
对象,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);
}
希望这会有所帮助。