我在使用ExcelPackage时遇到了很大的问题,因为有时公式没有更新(即使我删除了这个值)。如何自动刷新excel公式?
我试过使用ExcelInterop将xlsx保存为xls,认为这可以解决问题,但它没有。
我发现解决它的方法是按CTRL + ALT + F9。用户不会喜欢每次都这样做,所以我想以编程方式进行。你知道任何有效的方法来确保所有的xlsx公式被更新吗?
我在使用ExcelPackage时遇到了很大的问题,因为有时公式没有更新(即使我删除了这个值)。如何自动刷新excel公式?
我试过使用ExcelInterop将xlsx保存为xls,认为这可以解决问题,但它没有。
我发现解决它的方法是按CTRL + ALT + F9。用户不会喜欢每次都这样做,所以我想以编程方式进行。你知道任何有效的方法来确保所有的xlsx公式被更新吗?
呼叫Application.CalculateFull从VBA宏(或通过COM对象)
我发现这之前,为我工作:
for (int iWorksheet = 1; iWorksheet <= workbook.Worksheets.Count; iWorksheet++)
{
Worksheet ws = ((Worksheet)workbook.Worksheets[iWorksheet]);
ws.UsedRange.Formula = ws.UsedRange.Formula;
ws.Calculate();
}
您可以随时设置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
感谢,我认为这也将工作为好;) – 2009-07-29 13:29:07