我有一个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时保存。 谁能解释一下发生了什么?
注意:当应用程序运行时,每当我做任何事情时,我都会以编程方式保存,而不会询问。
答案 0 :(得分:0)
不是解释,但如果您确定所有相关更改已经保留,请忽略关闭时的进一步更改:
workbook.Close(SaveChanges: XlSaveAction.xlDoNotSaveChanges);