实现步骤
1、找store/index.js中添加一个全局变量 isShowFormula
const Store = {
isShowFormula:false,
...
}
2、在draw.js中的画文字时不画文字,而是画cell的f字段(f字段就代表单元格的公式)
// nby 一键显示公式
if(Store.isShowFormula && cell?.f){
txt = cell.f
}
// nby 一键显示公式 END
3、在toolbar.js中一个按钮,也就是工具栏中加一项,注意:这里代码没给完,需要跟其他工具按钮一样补齐其他代码。
4、最后在handle.js文件中处理新加的工具按钮,每次点击修改Store中新加的全局变量,并且重新刷新。
/* nby 显示/关闭公式 */
$('#luckysheet-icon-showFormula').click(function(event){
Store.isShowFormula = !Store.isShowFormula
luckysheet.jfrefreshgrid() //刷新
})
总结
这个需求很久之前就提过,当时看了下代码觉得不好做。前几天又有人提了这个需求,今天早上突然想到其实只需要改canvas画文字时的文字内容就行(也就是2中的txt),看来有时候突然的灵感还是很重要的。