阅读Excel文件! 总是出现一个对话框要求保存
我试图从Excel文件中读取数据。 我的问题是,当我读完它总是出现一个对话框要求保存。 我怎么关掉它?
这是我的代码:
Missing missing = Missing.Value; Excel.Application _app = new Excel.Application(); Excel.Workbook _workBook = _app.Workbooks.Open(e.Argument.ToString()); Excel.Worksheet _workSheet = _workBook.ActiveSheet; Excel.Range _range = _workSheet.UsedRange; BackgroundWorker bw = sender as BackgroundWorker; for (int i = 0; i < _range.Rows.Count; i++) { if (_workSheet.Cells[i + 2, 1].Value != null && _workSheet.Cells[i + 2, 2].Value != null) { inputList.Add(new infoInput(_workSheet.Cells[i + 2, 1].Value, _workSheet.Cells[i + 2, 1].Value)); } bw.ReportProgress(((i + 1) * 100)/_workSheet.UsedRange.Rows.Count); } _workBook.Close(); System.Runtime.InteropServices.Marshal.ReleaseComObject(_workBook); _app.DisplayAlerts = false; _app.Quit();
P / S对不起我的英文! 提前致谢。
当您调用.Quit()
方法时,应将DisplayAlerts
属性设置为FALSE以防止出现此消息。
_app.DisplayAlerts = false; _app.Quit();
_Application.Quit方法 :
如果在使用此方法时未保存的工作簿已打开,Microsoft Excel将显示一个对话框,询问您是否要保存更改。 您可以通过保存所有工作簿之前使用Quit方法或通过将DisplayAlerts属性设置为False来防止此问题。 当此属性为False时,退出未保存的工作簿时Microsoft Excel不显示对话框; 它没有保存就退出。
你有没有尝试过这样的事情?
_workBook.Close(SaveChanges:false)
要么
WB.Close(false, Type.Missing, Type.Missing);
根据这个链接:
如果你省略这个参数,将会出现一个保存对话框。
如果工作簿没有更改,则会忽略此参数。 如果工作簿发生更改并且工作簿出现在其他打开的窗口中,则该参数将被忽略。 如果工作簿发生更改,但工作簿未出现在其他任何打开的窗口中,则此参数指定是否应保存更改,如下面的列表所示。
真正。 保存对工作簿的更改。 如果还没有与该工作簿关联的文件名,则使用FileName。 如果FileName被省略,则要求用户提供文件名称。
假。 不会将更改保存到工作簿。
省略。 显示一个对话框询问用户是否保存更改。