尝试在没有对话框的情况下退出C#Excel工作簿

我正在使用Microsoft Office Interop编辑一些excel文件,当我关闭它们时,我使用

outputExcelWorkBook.Close(false, paramMissing, paramMissing); 

但是仍然会出现一个对话框,即使我将false作为第一个参数传递。 我也用true尝试了它,并给它一个文件路径作为第二个参数,但在这两种情况下都会出现一个对话框,询问我是否要在关闭之前保存。 谁能告诉我这里发生了什么?

尝试将Application.DisplayAlerts属性设置为false 。 对于大多数自动化例程,您可能会发现将此属性设置为false很有用。 请记住在返回之前恢复之前的值。

 Application applicationInstance = ...; var oldDisplayAlertsValue = applicationInstance.DisplayAlerts; applicationInstance.DisplayAlerts = false; try { outputExcelWorkBook.Close(false, Missing.Value, Missing.Value); } finally { appliationInstance.DisplayAlerts = oldDisplayAlertsValue; } 

这对我有用:

  1. 启动Excel

  2. 打开工作簿

  3. 获取活动工作表并进行编辑(将“文本”添加到单元格[2,2])

  4. 使用单个参数true关闭工作簿,这意味着“保存更改”

  5. 没有显示对话框。

注意:当我在没有参数的情况下调用Close时,系统会提示我保存更改。

  Microsoft.Office.Interop.Excel.Application excel = new Application(); Microsoft.Office.Interop.Excel.Workbook workBook = excel.Workbooks.Open(fileLocation); Microsoft.Office.Interop.Excel.Worksheet sheet = workBook.ActiveSheet; sheet.Cells[2, 2] = "Text"; workBook.Close(true); excel.Quit();