使用c#访问Excel公式

本文关键字:公式 Excel 访问 使用 | 更新日期: 2023-09-27 18:05:26

我需要在我的c#代码中使用Excel中的NORMSINV公式。我没有任何接触与Excel表,我没有得到任何值从Excel。只需在c#代码中使用公式即可。

如何做到这一点?

使用c#访问Excel公式

您可以使用GSL (GNU科学库,用C编写)。对应于您所追求的函数将是"gsl_cdf_ugaussian_Pinv"我相信。

你可以在这里获得GSL:

http://ftp.heanet.ie/mirrors/gnu/gsl

Excel中函数的详细信息:

http://support.microsoft.com/kb/826772

和GSL中相应的详细信息:

http://www.gnu.org/s/gsl/manual/html_node/The-Gaussian-Distribution.html

(注:标准正态分布也称为单位高斯分布)

我相信这应该是你所追求的精确近似。

(注意:我不编程在c#,所以可能有一些语法错误)

public double pdf_norm(double x)
{
  return (1 / Math.Sqrt(Math.PI)) * Math.Exp(-1 * (Math.Pow(x, 2) / 2)); 
}
public double cdf_norm(double x)
{
  double[] bValues = [0.2316419, 0.319381530, −0.356563782, 1.781477937, −1.821255978, 1.330274429];
  double t = 1 / (1 + bValues[0]*x);
  return 1 - pdf_norm(x)*(bValues[1]*t + bValues[2]*Math.Pow(t,2) + bValues[3]*Math.Pow(t,3) + bValues[4]*Math.Pow(t,4) + bValues[5]*Math.Pow(t,5));
}

你需要调用函数cdf_norm来返回你想要的数字。

请测试它的工作,让我知道。:)