本帖最后由 Ellia.Duan 于 2022-9-7 11:15 编辑
我们首先给单元格设置引用其他单元格的公式,代码如下:- sheet = spread.getSheet(0);
- // 设值
- sheet.setValue(0, 0, 1, 3);
- sheet.setValue(1, 0, 50, 3);
- sheet.setValue(2, 0, 100, 3);
- sheet.setValue(3, 0, 2, 3);
- sheet.setValue(4, 0, 60, 3);
- sheet.setValue(5, 0, 90, 3);
- sheet.clearSelection();
- // 添加selection
- sheet.addSelection(2, 0, 3, 1);
- var range = sheet.getSelections();
- // 获取range字符串
- var rangeStr = GC.Spread.Sheets.CalcEngine.rangeToFormula(range[0],0,0,GC.Spread.Sheets.CalcEngine.RangeReferenceRelative.allRelative);
- // 使用选定区域创建公式
- var formula = "Sum(" + rangeStr + ")";
- // 在表单的单元格中设置公式
- sheet.setFormula(5, 5, formula, GC.Spread.Sheets.SheetArea.viewport);
复制代码 在界面中查看效果:
接下来我们用rangesToFormula()将相对引用区域转换为绝对引用区- //获取原公式
- let formula2 = sheet.getFormula(5,5)
- //获取原表达式
- let expression1 = GC.Spread.Sheets.CalcEngine.formulaToExpression(sheet, formula2, 0, 0);
- //将原区域相对引用转换为绝对引用
- let rangesStr = GC.Spread.Sheets.CalcEngine.rangesToFormula(range,0,0,GC.Spread.Sheets.CalcEngine.RangeReferenceRelative.allAbsolute);
- console.log(rangesStr)
- // 将原表达式函数和转换后的区域拼接为新的公式
- let formula = expression1.functionName+"(" + rangesStr + ")";
- // 在表单的单元格中设置公式
- sheet.setFormula(5, 5, formula, GC.Spread.Sheets.SheetArea.viewport);
复制代码
我们看一下页面
Prefect!!!
|
|