我有一个winform应用程序,我试图在不显示保存提示的情况下关闭excel。在谷歌和stackoverflow寻找解决方案后,这是我想出了,但它不适合我。无法在不显示提示的情况下关闭excel
string filepath = string.Empty;
string reportname = lblreportname.Text;
filepath = Application.StartupPath + "\\StandardReports\\" + reportname + ".xls";
Microsoft.Office.Interop.Excel.Application xlApp;
Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Microsoft.Office.Interop.Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(filepath, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
List<string> WorksheetList = new List<string>();
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(lsvSelectedQ.SelectedItem.ToString());
Microsoft.Office.Interop.Excel.Range objRange = null;
objRange = (Microsoft.Office.Interop.Excel.Range)xlWorkSheet.Cells[1, 5];
string intrvl = objRange.Value.ToString();
//more code
xlApp.DisplayAlerts = false;
xlWorkBook.Save();
xlWorkBook.Close();
xlApp.DisplayAlerts = true;
xlApp.Quit();
随着xlApp.DisplayAlerts = false;
我能够取消提示,但我也无法关闭Excel。我仍然可以在任务管理器中看到excel进程。
[VBA workbooks.Close的可能的复制而不会被提示,如果用户想保存?](http://stackoverflow.com/questions/11220537/vba-workbooks-close-without-being-prompted-to-if-the-user-wantst o-save) –
@AxelKemper我正在寻找一个C#解决方案。或者可以使用在线工具轻松转换为C#的Vb解决方案。你提到的帖子有vba解决方案。 – Arbaaz
你有没有尝试删除第二个'DisplayAlerts'部分?我做了'DisplayAlerts = false','Save()','Close()'和'Quit()',它对我来说很好用 – uTeisT