我使用Microsoft Office互操作編輯一些Excel文件,並當我關閉他們,我用試圖退出C#的Excel工作簿,而不對話框
outputExcelWorkBook.Close(false, paramMissing, paramMissing);
,但對話框仍然出現,即使我通過作爲第一個參數的是false
。我也嘗試過true
並給它一個文件路徑作爲第二個參數,但是在這兩種情況下,出現一個對話框詢問我是否想在關閉之前保存。誰能告訴我這裏發生了什麼?
我使用Microsoft Office互操作編輯一些Excel文件,並當我關閉他們,我用試圖退出C#的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])
用單個關閉工作簿這意味着「保存更改」
沒有顯示對話框。
注意:當我在沒有參數的情況下調用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();