Excel Dna - 刷新所有数据源和公式计算

Oce*_*ean 5 c# excel-dna

我有几个来自数据库的公式和数据.我想通过ExcelDna以编程方式刷新所有公式.所有这些公式都是ExcelFunctions,我已经把ExcelCommand name ="Refresh"放在我想要重新计算到Excel表格上.

我使用以下但它只刷新本机excel函数,例如NOW(),SUM()等.它不会调用ExcelDna函数上的刷新?

[ExcelCommand(MenuName="Refresh", MenuText="Refresh"   )]
        public static void GetPositionCommand()
        {
            XlCall.Excel(XlCall.xlcCalculateNow);
        }
Run Code Online (Sandbox Code Playgroud)

提前致谢...

Gov*_*ert 7

xlcCalculateNow将仅计算Excel知道必须重新计算的公式.您可以将Excel函数标记为"易失性",使其表现得像Excel的NOW()函数,每次都会重新计算.使用Excel-DNA,您可以这样做:

[ExcelFunction(IsVolatile=true)]
public static string MyVolatileNow()
{
    return DateTime.Now.ToString("HH:mm:ss.fff");
}
Run Code Online (Sandbox Code Playgroud)

并与默认的非易失性情况进行比较:

[ExcelFunction]
public static string MyNow()
{
    return DateTime.Now.ToString("HH:mm:ss.fff");
}
Run Code Online (Sandbox Code Playgroud)

将数据推送到Excel的另一种方法是创建RTD服务器或在最新的Excel-DNA签到中使用新的Reactive Extensions for Excel(RxExcel)支持.这里有一些信息 - http://exceldna.codeplex.com/wikipage?title=Reactive%20Extensions%20for%20Excel.