在向一系列单元格中写入时,是否可以用C#将公式写入Excel

本文关键字:Excel 一系列 单元格 是否 | 更新日期: 2024-09-22 18:03:23

我有一个自制的实用程序,可以将数据从数据集传输到Excel电子表格。我想把一个公式(例如"=+RC[-2]-RC[-1]")放在其中一列中。然而,Excel将其视为字符串,而不是将其解释为公式。该实用程序在Excel中创建一个对象数组并将其传输到一个范围。这是问题所在吗?我过去曾将公式写入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;
   }

在向一系列单元格中写入时,是否可以用C#将公式写入Excel

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

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

必须使用Range对象的.FormulaFormulaR1C1属性。

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