Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 读取Excel文件!始终显示请求保存的对话框_C#_Excel - Fatal编程技术网

C# 读取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());

我正在尝试从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();
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