10金币
本帖最后由 HJ-LY 于 2023-9-26 11:14 编辑
initWorkbook(spread) {
······
spread.bind(spreadNS.Events.ValueChanged, function (event, data) {
let row = data.row,
col = data.col;
if (row === undefined || col === undefined) {
return;
}
if (sheet.hasPendingChanges(row, col)) {
let dirtyDataArray = sheet.getDirtyCells(row, col);
if (dirtyDataArray.length > 0) {
sheet.getCell(dirtyDataArray[0].row, dirtyDataArray[0].col).backColor("Yellow");
console.log("Cell (", dirtyDataArray[0].row, ",", dirtyDataArray[0].col, ") changed from ", dirtyDataArray[0].oldValue, " to ", dirtyDataArray[0].newValue);
}
}
});
this.sheetRepaint = sheet;
······
}
clear() {
······
this.sheetRepaint.getRange(-1,3,-1,6).backColor(""); //清除没有效果
······
}
|
最佳答案
查看完整内容
您好,这是因为样式存在优先级的概念(单元格 > 行 > 列),您在事件中设置的样式是在单元格的级别上的,而您在clear函数中调用的设置样式的优先级为列,低优先级的样式无法影响高优先级的样式,因此无法清除。
要解决这个问题很简单,将getRange(-1,3,-1,6)改为=》getRange(0, 3, sheet.getRowCount(), 6)即可。
另外,如果要去除背景色,建议您使用undefined,而不是空字符串。
|