我有一个Excel工作簿,其中包含一个自定义的非时间依赖单元格函数,我正在使用Interop.Excel从C#WindowsForms应用程序打开该函数。我从中读取四个值,不执行显式更改/计算,然后从C#关闭它。
当我尝试直接关闭(不保存)时,会收到保存提示。我怀疑这是因为Excel将打开时的自动重新计算解释为创建了一个更改,尽管实际上没有任何数字或公式上的更改。我还设置了Excel.Application.Calculation = Excel.XlCalculation.xlCalculationManual
。如何防止出现保存提示并关闭而不保存?
使用Excel对象时,请确保关闭工作簿,如下所示:
Excel.Application xlApp ;
Excel.Workbook xlWorkBook ;
Excel.Worksheet xlWorkSheet ;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add("Yourworkbook");
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
....do your stuff
xlWorkBook.Close(false, misValue, misValue);
xlApp.Quit();
close方法中的false表示不保存更改。