簡體   English   中英

將SUMPRODUCT Excel公式轉換為C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM