Excel 打开 xml sdk - 在单元格之间复制带有范围修改的公式

Excel Open xml sdk - Copy formula between cells with range modification

我有一个包含公式 (CellFormula) 的单元格。我不知道公式内容(可能是 Sum、ifs 或任何其他计算)。
该公式可能包括范围。
当您将单元格拖到其他单元格时(在 excel 应用程序本身手动),公式范围会更新。
我希望公式程序化副本的行为方式相同。
如果公式包含范围说明符,我想将它们更新到当前行。
有没有一些内置的方法可以做到这一点而无需正则表达式操作?

我不知道这是否是一个涵盖所有可能性的好解决方案,但是...

//Formula update
if (cloneFromCell.CellFormula != null && (cloneFromCell.CellFormula.FormulaType == null || !cloneFromCell.CellFormula.FormulaType.HasValue || cloneFromCell.CellFormula.FormulaType.Value == CellFormulaValues.Normal))
{
    uint cloneRowIndex = OXMLTools.GetRowIndex(cloneFromCell.CellReference);
    uint offset = rowIndex - cloneRowIndex;
    exCell.CellFormula.Text = OXMLTools.GetUpdatedFormulaToNewRow(cloneFromCell.CellFormula.Text, offset);
}

public static string GetUpdatedFormulaToNewRow(string formula, uint offset)
{
    return Regex.Replace(formula, @"[A-Za-z]+\d+", delegate(Match match)
    {
      //Calculate the new row for this cell in the formula by the given offset
      uint oldRow = GetRowIndex(match.Value);
      string col = GetColumnName(match.Value);
      uint newRow = oldRow + offset;

      //Create the new reference for this cell
      string newRef = col + newRow;
      return newRef;
    });
 }