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

9
我正在使用Microsoft Office Interop编辑一些Excel文件,当我关闭它们时,我使用了以下代码:
outputExcelWorkBook.Close(false, paramMissing, paramMissing);

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

2个回答

13

尝试将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;
}

3
这对我很有用:
  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();

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