在写入一系列单元格时,您能从C#中编写Excel公式吗?

时间:2012-08-03 20:52:25

标签: c# excel interop

我有一个自制的实用程序,用于将数据从DataSet传输到Excel电子表格。我想在其中一列中加上一个公式(例如“= + RC [-2] -RC [-1]”)。但是,Excel将其视为字符串而不是将其解释为公式。该实用程序创建一个对象数组并将其传输到Excel中的Range。这是问题吗?我过去曾向Excel编写公式,但仅限于写入单个单元格时。

for (int r = 0; r < nr; r++)
   {
      r = dt.Rows[r];
      nOut++;

      aRng = new object[nc];
      for (int c = 0; c < nc; c++) else aRng[c] = dr[c];

      oRng = oSheet.get_Range(CellAddress(nOut, 1), CellAddress(nOut, nc));
      oRng.Value2 = aRng;
   }

2 个答案:

答案 0 :(得分:2)

您必须使用.Formula属性才能强制excel将其视为公式。

((Range)worksheet.Cells[row, col]).Formula = myFormula

答案 1 :(得分:1)

您必须使用.Formula对象的FormulaR1C1Range属性。

string s = "=+RC[-2]-RC[-1]";
...
oRng.FormulaR1C1 = s;