如何从C#关闭 - 不保存带有自定义函数的Excel / xlsm工作簿

时间:2012-01-11 03:46:40

标签: c# excel excel-interop

我有一个Excel工作簿,其中包含一个自定义的非时间依赖的单元格函数,我使用Interop.Excel从C#WindowsForms应用程序打开。我从中读取了四个值,不执行显式更改/计算,然后从C#中关闭它。

当我尝试直接关闭(不保存)时,我收到一个保存提示。我怀疑这是因为Excel在打开时将自动重新计算解释为创建更改,即使实际上没有任何数字或公式更改。我还设置了Excel.Application.Calculation = Excel.XlCalculation.xlCalculationManual。如何阻止保存提示出现并且只是关闭而不保存?

2 个答案:

答案 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#