2009年9月9日 星期三

C# 與 Excel (5) - 輸入儲存格公式

今天來介紹一下如何在儲存格中輸入公式

我用過的有二種方式

第一種是選定範圍後再設定公式

這種的好處是, 它有明確的屬性可以設定

// A1 = 10
ExcelSheet.Cells[1,1] = 10;
// A2 = 25
ExcelSheet.Cells[2,1] = 25;

/*** A3 = A1 + A2 ***/
// 先選定 A3 範圍
Range rangeA3 = ExcelSheet.get_Range("A3", System.Type.Missing);

// 設定一 : 使用 Formula 屬性設定公式
rangeA3.Formula = "=SUM(A1 : A2)";  //也可以用 "=A1+A2"

// 設定二 : 使用 FormulaR1C1 屬性設定公式
// 有關 R1C1 請參考[Office Online>關於公式中的參照>R1C1 參照樣式]
rangeA3.FormulaR1C1 = "=SUM(R[-2]C : R[-1]C)";

// B1 = 100 , B2 = 25
ExcelSheet.Cells[1,2] = 100;
ExcelSheet.Cells[2,2] = 25;
// C1 = 42 , C2 = 7
ExcelSheet.Cells[1,3] = 42;
ExcelSheet.Cells[2,3] = 7;
// 設定 B3 = B1 / B2 , C3 = C1 / C2
Range rangeB3toC3 = ExcelSheet.get_Range("B3" , "C3");
rangeB3toC3.FormulaR1C1 = "=R[-2]C / R[-1]C";

第二種是直接針對儲存格設定公式

// D1 = 25 , E1 = 4
ExcelSheet.Cells[1,4] = 25;
ExcelSheet.Cells[1,5] = 4;
// F1 = D1 * E1
ExcelSheet.Cells[1,6] = "=D1 * E1";

//D2 = 58 , E2 = 42
ExcelSheet.Cells[2,4] = 58;
ExcelSheet.Cells[2,5] = 42;
// F2 = D2 - E2
ExcelSheet.Cells[2,6] = "=RC[-2] - RC[-1]";

依需求不同, 可以選用不同的方式輸入公式

沒有留言:

張貼留言