我有一个Excel工作簿,其中包含一个自定义的非时间依赖的单元格函数,我使用Interop.Excel从C#WindowsForms应用程序打开。我从中读取了四个值,不执行显式更改/计算,然后从C#中关闭它。
当我尝试直接关闭(不保存)时,我收到一个保存提示。我怀疑这是因为Excel在打开时将自动重新计算解释为创建更改,即使实际上没有任何数字或公式更改。我还设置了Excel.Application.Calculation = Excel.XlCalculation.xlCalculationManual
。如何阻止保存提示出现并且只是关闭而不保存?
答案 0 :(得分:52)
使用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();
关闭方法中的false表示不保存更改。
答案 1 :(得分:1)
最近我正在研究Excel的自动化,我发现这个链接是完美的解决方案 Kill Process Excel C#