我正在使用 Microsoft Office Interop 编辑一些 excel 文件,当我关闭它们时,我使用
outputExcelWorkBook.Close(false, paramMissing, paramMissing);
false
但是即使我作为第一个参数传递,仍然会出现一个对话框。我也尝试过true
并给它一个文件路径作为第二个参数,但在这两种情况下都会出现一个对话框,询问我是否要在关闭之前保存。谁能告诉我这里发生了什么?
我正在使用 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;
}
这对我有用:
启动 Excel
打开工作簿
获取活动工作表并进行编辑(将“文本”添加到单元格 [2,2])
使用单个参数 true 关闭工作簿,这意味着“保存更改”
不显示对话框。
注意:当我在没有参数的情况下调用 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();