如何在不保存Excel.xlsm工作簿的情况下关闭,带有自定义函数,来自C#

本文关键字:来自 自定义函数 情况下 保存 Excel 工作簿 xlsm | 更新日期: 2023-09-27 18:20:08

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

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

如何在不保存Excel.xlsm工作簿的情况下关闭,带有自定义函数,来自C#

使用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表示不保存更改。