阅读Excel文件!始终出现一个对话框要求保存

时间:2013-12-23 08:19:42

标签: c# excel

我正在尝试从excel文件中读取数据。我的问题是当我读完它时总会出现一个对话框要求保存。我怎么能把它关掉呢? enter image description here
这是我的代码:

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抱歉我的英文!提前谢谢。

3 个答案:

答案 0 :(得分:2)

您应该将DisplayAlerts属性设置为FALSE,以便在调用.Quit()方法时阻止此消息。

_app.DisplayAlerts = false;
_app.Quit();

_Application.Quit method

  

如果使用此方法时未打开的工作簿已打开,则Microsoft   Excel将显示一个对话框,询问您是否要保存   变化。您可以通过在使用之前保存所有工作簿来防止这种情况   退出方法或将DisplayAlerts属性设置为False。什么时候   此属性为False,Microsoft Excel不显示该对话框   当你退出未保存的工作簿;它退出而没有保存它们。

答案 1 :(得分:1)

你试过这样的事吗

_workBook.Close(SaveChanges:false)

WB.Close(false, Type.Missing, Type.Missing);

根据这个链接:

http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.close.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

如果省略此参数,将出现一个保存对话框。

  

如果工作簿没有更改,则忽略此参数。如果   工作簿有更改,工作簿出现在其他工作簿中   打开窗口,这个参数被忽略了。如果有变化   工作簿但工作簿不会出现在任何其他打开的窗口中,   此参数指定是否应保存更改,如图所示   以下列表。

     

真。将更改保存到工作簿。如果还没有文件   与工作簿关联的名称,然后使用FileName。如果是FileName   省略,要求用户提供文件名。

     

假。不保存对工作簿的更改。

     

略。显示一个对话框,询问用户是否保存   变化。

答案 2 :(得分:0)

我遇到了同样的问题。所有关于宏、修复 MS Office 等的建议都没有帮助——尽管它们与问题有关......

事实证明,我不小心将电子表格的一个单元格中的日期从有效日期(例如:02/06/2021)更改为字母“H”。我不知道我什么时候做的,但这不是临时更改——也就是说,我显然在更改后按了 Enter 键或箭头键。有趣的是,该单元格没有链接到任何宏或公式;它只是被格式化为日期。当我修复日期并保存电子表格时,问题就消失了。