关闭App时为什么excel一直要求我保存?

时间:2017-05-16 14:34:42

标签: c# excel winforms

我有一个WFA管理Excel中保存的本地数据库,由于某种原因,应用程序要求在关闭时保存工作簿,即使我没有修改它; 当使用Excel Interop v 12.0.0.0 而不部署我的应用程序时,我关闭它时没有问题,它完全正常,但是,我使用Excel Interop v 16.0.0.0进行了部署并且在关闭时或者在进行更改后仍然要求保存(这种行为使用Interop的v 12无法使用我在版本之间编写的完全相同的代码进行复制)。

这是我用来通过按钮关闭我的应用程序的代码:

try
{
    oXL.Application.IgnoreRemoteRequests = false;
    oWB.Close();
    {
        if
        (oXL.Workbooks.Count < 1)
        {
            oXL.Quit();
        }
    }
}
catch (Exception)
{
    MessageBox.Show("La base de datos no se pudo cerrar correctamente, verifique que su informacion no se haya perdido.", "ERROR AL CERRAR DB", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
this.Close();

我这是为了尝试修复它:

try
{
    oXL.Application.IgnoreRemoteRequests = false;
    oWB.Save();
    oWB.Close();
    {
        if
        (oXL.Workbooks.Count < 1)
        {
            oXL.Quit();
        }
    }
}
catch (Exception)
{
    MessageBox.Show("La base de datos no se pudo cerrar correctamente, verifique que su informacion no se haya perdido.", "ERROR AL CERRAR DB", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
this.Close();

然而,没有运气,程序仍然要求在使用Interop v 16时保存。 谁能解释一下发生了什么?

注意:当应用程序运行时,每当我做任何事情时,我都会以编程方式保存,而不会询问。

1 个答案:

答案 0 :(得分:0)

不是解释,但如果您确定所有相关更改已经保留,请忽略关闭时的进一步更改:

workbook.Close(SaveChanges: XlSaveAction.xlDoNotSaveChanges);