将SUMPRODUCT Excel公式转换为C#

我是初学C#程序员,我发现自己是一个Windows Form应用程序,我正在使用Microsoft Visual C#2010 Express的问题。 我有一个button打开文件对话框来select特定的Excel工作簿,然后检索特定工作表的第一列和第五列的值。

我在Excel中完成了这个公式:

=SUMPRODUCT(('Worksheet1'!$A$2:$A$700<=99999)*('Worksheet1'!$A$2:$A$700>=90000)) 

我想在C#中使用这个公式。 任何人都可以帮助我呢?

请注意,工作表的名称是相同的文件的名称,所以我可以得到这样的工作表的名称:

 string name = openFileDialog1.SafeFileName.Split(new Char[] { '.' })[0]; 

然后打开它:

 Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application(); ExcelApp.Visible = true; Microsoft.Office.Interop.Excel.Workbook wbook = ExcelApp.Workbooks.Open(openFileDialog1.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,) Microsoft.Office.Interop.Excel.Worksheet wsheet = (Microsoft.Office.Interop.Excel.Worksheet)wbook.Sheets[name]; 

你们能帮我吗? 希望你能。

非常感谢。

具有两个相同大小的arrays的SUMPRODUCT的algorithm将是容易的…离开我的头:

 float SumProduct(float[] arrayA, float[] arrayB) { float result = 0; for(int i = 0; i < arrayA.Count(); i++) result += arrayA[i] * arrayB[i]; return result; } 

这可以很容易地扩展到使用任何数量的数组(或使用任何types不同于float )。 你必须检查这两个数组也是相同的大小。