[英]Convert SUMPRODUCT Excel Formula to C#
我是C#初学者,我发现自己正在使用Microsoft Visual C#2010 Express的Windows Form应用程序中存在问题。 我有一个按钮,用于打开文件对话框以选择特定的Excel工作簿,然后检索特定工作表的第一列和fith列的值。
我已经在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];
你们能帮我吗? 希望你能。
非常感谢。
具有两个相同大小的数组的SUMPRODUCT
的算法很容易...让我烦恼:
float SumProduct(float[] arrayA, float[] arrayB)
{
float result = 0;
for(int i = 0; i < arrayA.Count(); i++)
result += arrayA[i] * arrayB[i];
return result;
}
这可以很容易地扩展为使用任意数量的数组(或使用不同于float
任何类型)。 您必须检查两个数组的大小是否也相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.