您好!可以通过判断输入数据是否由等于号开始判别是否输入了公式。由于您提出除了编辑外还希望粘贴、拖拽填充也能禁止引入公式,那么,可以分别通过监听EditChanging、ClipBoardPasting实现。具体地,在每个事件中判断试图设置在单元格中的数据是否以等于号开头,一般情况下可将这样的数据看作公式。
通过EditEnding事件禁止在单元格中输入公式,参考如下代码:
- spread.bind(GC.Spread.Sheets.Events.EditEnding, function (e, args) {
- console.log('edit end: ', args);
- var inputData = args.editingText;
- if(inputData && inputData.length > 0){
- var text = inputData.trim();
- if(text.length !== 0 && text.startsWith("=")){
- console.log("不支持输入公式");
- args.cancel = true;
- }
- }
- });
复制代码
通过ClipboardPasted事件阻拦在单元格粘贴公式,参考如下代码:
- spread.bind(GC.Spread.Sheets.Events.ClipboardPasting, function(e, args) {
- console.log('clipboard pasting, args: ', args);
- if (args.pasteData && args.pasteData.text) {
- var inputData = args.pasteData.text;
- console.log('text: ', inputData);
- if(inputData && inputData.length > 0){
- var text = inputData.trim();
- if(text.length !== 0 && text.startsWith("=")){
- console.log("不支持输入公式");
- args.cancel = true;
- }
- }
- }
- });
复制代码
在输入、粘贴时禁止了公式输入,拖拽填充时自然也就不存在以公式为拖拽源的情景。 |