使用 excel 互操作在 C# 中生成预测值

Generate forecasting value in C#using excel interop

我想使用 excel intro 预测函数生成预测值。我需要使用 excel 预测线性函数,但我想将预测值存储到数据库中。

我不知道如何开始请帮助我。

如果您只需要一个线性预测函数,我认为 Excel Interop 可能有点矫枉过正。您可以从您的 C# 项目添加对 Office COM 库的引用并调用 WorksheetFunction.Forecast 函数,或者您可以直接添加一个方法来在您的 C# 代码中执行相同的操作。我认为线性预测逻辑本质上是这样的:

static double Forecast(double[] xValues, double[] yValues, double forecastPoint)
{
    var xAverage = xValues.Average();
    var yAverage = yValues.Average();

    var bounds = yValues
        .Select((y, i) => new { Value = y, Index = i })
        .Aggregate(new { Top = 0.0, Bottom = 0.0 }, (acc, cur) =>
            new
            {
                Top = acc.Top + (xValues[cur.Index] - xAverage) * (yValues[cur.Index] - yAverage),
                Bottom = acc.Bottom + Math.Pow(xValues[cur.Index] - xAverage, 2.0)
            });

    var level = bounds.Top / bounds.Bottom;

    return (yAverage - level * xAverage) + level * forecastPoint;
}