本帖最后由 Matthew.Xue 于 2025-3-13 17:43 编辑
我一开始以为您是想自己写一个FormulaTextBox,您其实是想在设计器上方的公式编辑栏以及单元格内部输入吗?
我文章中的方法是针对那种悬浮在页面的FormulaTextBox有用,而设计器上方常驻的编辑栏根本就不会进入到selectMode,所以就谈不上endSelectMode。
如果您只是想在页面的单元格中去改变公式,比方说在某个单元格写了“=A1”,就自动替换成“=SUM(...)”,那么完全可以使用CellChanged事件来监听,当监听到propertyName为formula时,就获取这个单元格的formula,并根据您的规则对单元格的公式做出修改
CellChanged
getFormula
setFormula
注意,所有的事件可以直接注册在workbook上,您不必非在sheet中注册:- spread.bind(GC.Spread.Sheets.Events.CellChanged, function(e,info) {
- console.log(info)
- let formula = getProcessedFormula(info.sheet, info.row, info.col)
- info.sheet.setFormula(info.row, info.col, formula)
- })
- function getProcessedFormula(sheet, row, col) {
- let formula = sheet.getFormula(row, col)
- // do something to formula
- formula = "sum(...)"
- return formula
- }
复制代码
|