C# 读取Excel文件!始终显示请求保存的对话框
我正在尝试从excel文件中读取数据。我的问题是,当我读完时,总是出现一个要求保存的对话框。如何关闭它?C# 读取Excel文件!始终显示请求保存的对话框,c#,excel,C#,Excel,我正在尝试从excel文件中读取数据。我的问题是,当我读完时,总是出现一个要求保存的对话框。如何关闭它? 这是我的密码: Missing missing = Missing.Value; Excel.Application _app = new Excel.Application(); Excel.Workbook _workBook = _app.Workbooks.Open(e.Argument.ToString());
这是我的密码:
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();
Missing=Missing.Value;
Excel.Application_app=新的Excel.Application();
Excel.Workbook\u工作簿=\u app.Workbooks.Open(e.Argument.ToString());
Excel.Worksheet\u Worksheet=\u workBook.ActiveSheet;
Excel.Range _Range=_workSheet.UsedRange;
BackgroundWorker bw=发送方作为BackgroundWorker;
对于(int i=0;i<\u range.Rows.Count;i++){
if(_工作表.Cells[i+2,1].Value!=null&&u工作表.Cells[i+2,2].Value!=null)
{
添加(新的信息输入(_工作表.Cells[i+2,1].Value,_工作表.Cells[i+2,1].Value));
}
bw.ReportProgress(((i+1)*100)/_工作表.UsedRange.Rows.Count);
}
_workBook.Close();
System.Runtime.InteropServices.Marshal.ReleaseComObject(\u工作簿);
_app.DisplayAlerts=false;
_app.Quit();
对不起我的英语!提前感谢。您应该将
DisplayAlerts
属性设置为FALSE,以防止在调用.Quit()
方法时出现此消息
_app.DisplayAlerts = false;
_app.Quit();
:
如果使用此方法时打开了未保存的工作簿,则Microsoft
Excel将显示一个对话框,询问是否要保存
变化。您可以通过在使用之前保存所有工作簿来防止这种情况
退出方法或将DisplayAlerts属性设置为False。什么时候
此属性为False,Microsoft Excel不显示该对话框
当您使用未保存的工作簿退出时;它没有拯救他们就退出了
您应该将
DisplayAlerts
属性设置为FALSE,以防止在调用.Quit()
方法时出现此消息
_app.DisplayAlerts = false;
_app.Quit();
:
如果使用此方法时打开了未保存的工作簿,则Microsoft
Excel将显示一个对话框,询问是否要保存
变化。您可以通过在使用之前保存所有工作簿来防止这种情况
退出方法或将DisplayAlerts属性设置为False。什么时候
此属性为False,Microsoft Excel不显示该对话框
当您使用未保存的工作簿退出时;它没有拯救他们就退出了
你试过这样的东西吗
_workBook.Close(SaveChanges:false)
或
根据这个链接:
如果省略此参数,将显示“保存”对话框
如果工作簿没有更改,则忽略此参数。如果
工作簿发生了更改,工作簿显示在其他位置
打开窗口时,此参数将被忽略。如果更改了
工作簿,但该工作簿不显示在任何其他打开的窗口中,
此参数指定是否应保存更改,如中所示
下面是一份清单
对。保存对工作簿的更改。如果还没有文件
与工作簿关联的名称,然后使用文件名。如果文件名
如果省略,则要求用户提供文件名
错。不保存对工作簿的更改
省略。显示一个对话框,询问用户是否保存
变化
你试过这样的东西吗
_workBook.Close(SaveChanges:false)
或
根据这个链接:
如果省略此参数,将显示“保存”对话框
如果工作簿没有更改,则忽略此参数。如果
工作簿发生了更改,工作簿显示在其他位置
打开窗口时,此参数将被忽略。如果更改了
工作簿,但该工作簿不显示在任何其他打开的窗口中,
此参数指定是否应保存更改,如中所示
下面是一份清单
对。保存对工作簿的更改。如果还没有文件
与工作簿关联的名称,然后使用文件名。如果文件名
如果省略,则要求用户提供文件名
错。不保存对工作簿的更改
省略。显示一个对话框,询问用户是否保存
变化
我也有同样的问题。所有关于宏、修复MS Office等的建议都毫无帮助——尽管它们与问题有关
结果是,我意外地将电子表格中一个单元格中的日期从有效日期(例如:02/06/2021)更改为字母“H”。我不知道我是什么时候做的,但这不是一个暂时的改变——也就是说,我显然是在改变之后按了回车键或是箭头键。有趣的是,该单元格未链接到任何宏或公式;它只是格式化为日期。当我修复日期并保存电子表格时,问题就永远消失了。我也遇到了同样的问题。所有关于宏、修复MS Office等的建议都毫无帮助——尽管它们与问题有关
结果是,我意外地将电子表格中一个单元格中的日期从有效日期(例如:02/06/2021)更改为字母“H”。我不知道我是什么时候做的,但这不是一个暂时的改变——也就是说,我显然是在改变之后按了回车键或是箭头键。有趣的是,该单元格未链接到任何宏或公式;它只是格式化为日期。当我修复日期并保存电子表格时,问题就永远消失了。谢谢你的帮助?让我问你一个问题?excel应用程序是否仍在任务管理器中运行?抱歉!但它仍然会显示对话框:“想保存您的更改…”@hicurin尝试插入
\u app.DisplayAlerts=false代码>在之前\u工作簿.Close()代码>我猜这个方法会显示这个对话框。还可以使用参数\u workBook.Close(false)调用代码>谢谢你的帮助?让我问你一个问题?excel应用程序是否仍在任务管理器中运行?抱歉!但它仍然显示对话框:“想保存您的更改…”hicurin T