【问题标题】:Trying to exit C# Excel Workbook without a dialog box尝试在没有对话框的情况下退出 C# Excel 工作簿
【发布时间】:2013-07-01 21:18:19
【问题描述】:

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

outputExcelWorkBook.Close(false, paramMissing, paramMissing);

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

【问题讨论】:

    标签: c# excel-interop excel-automation


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这对我有用:

      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();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-27
        • 1970-01-01
        • 2013-06-15
        相关资源
        最近更新 更多