如何自动刷新Excel公式?
我遇到了使用ExcelPackage的大问题,因为有时公式不会更新(即使我删除了这个值)。
我试过使用ExcelInterop xlsx保存为xls,认为这可以解决问题,但它没有。
我发现解决它的方法是按CTRL + ALT + F9。 用户不会喜欢每次都这样做,所以我想以编程的方式来完成。 你知道任何有效的方法来确保所有xlsx公式被更新吗?
从VBAmacros(或通过COM对象)调用Application.CalculateFull
之前我已经发现了这个function:
for (int iWorksheet = 1; iWorksheet <= workbook.Worksheets.Count; iWorksheet++) { Worksheet ws = ((Worksheet)workbook.Worksheets[iWorksheet]); ws.UsedRange.Formula = ws.UsedRange.Formula; ws.Calculate(); }
用于.NET的SpreadsheetGear可以打开,计算和保存xls和xlsx工作簿,而不使用Excel,并且从.NET应用程序中工作起来更容易,因为它完全是.NET代码(用C#编写)。
你可以在这里看到一些例子,并在这里下载免费试用,如果你想尝试一下。
免责声明:我自己的SpreadsheetGear LLC
你可以随时设置Application.Calculation = xlAutomatic
。 这样你就不依赖自己的代码来执行计算,只有在需要时才会调用它。
请注意,此设置会影响整个Excel实例。 所以,如果你的客户不希望其他工作簿这样工作 – 他们应该打开它在一个单独的Excel实例。
在C#中,使用Application.Calculate()
来评估所有打开的工作簿, Workbook.Calculate()
以评估工作簿或Worksheet.Calculate()
工作表。
http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel._application.calculate.aspx