锁定状态下,单元格输入弹窗提示
背景:在Excel中,当设置了表单保护,且单元格处于锁定状态时,此时在单元格进行输入,会提示如下:
SpreadJS是一个控件产品,原生上没有此功能,但我们可以利用SpreadJS强大的定制能力二次开发实现。
步骤:
单元格输入有两种方式:
方式1:双击单元格进入编辑状态
方式2:选择单元格并按下字母键/数字键进行输入。
思路较简单,监听双击事件或者键盘按键,判断当前表单为保护状态,且该单元格为锁定状态,此时进行弹窗提示。
具体如下:
方式1:监听双击单元格
sheet.bind(GC.Spread.Sheets.Events.CellDoubleClick, function (e, info) {
console.log(info);
var r = info.row;
var c = info.col;
var cell = sheet.getCell(r,c);
if(sheet.options.isProtected == true && cell.locked() == true) {
alert("单元格锁定,禁止输入")
}
});
方式2:监听键盘按键
//js监听键盘按键
document.onkeydown = function (event) {
var e = event || window.event || arguments.callee.caller.arguments;
//以按键 "A" 为例
if (e && e.keyCode == 65) {
var gcuielement = document.activeElement.attributes.gcuielement;
if(gcuielement && gcuielement.localName == "gcuielement" ) {
//判断当前选择的单元格是否是锁定状态
var selection = sheet.getSelections();
var r = selection.row;
var c = selection.col;
var cell = sheet.getCell(r,c);
if(sheet.options.isProtected == true && cell.locked() == true) {
alert("单元格锁定,禁止输入");
}
}
}
}
测试结果如下:
完整代码详见附件。
页:
[1]