本帖最后由 Richard.Huang 于 2023-7-24 14:59 编辑
您好,目前知晓原因了
首先原因:spreadjs对于样式的呈现是存在优先级的,优先级为:单元格>行>列>表(defaultStyle),因此,如果单元格设置了locked=true,那么无论defaultStyle设置成什么样式都无法改变单元格被锁定的状态,您可以参考https://gcdn.grapecity.com.cn/showtopic-54557-1-1.html
解决方法:通过for循环更改cell的locked属性
// 为了提高性能可以先挂起spread
spread.suspendPaint();
var rc = sheet.getRowCount();
var cc = sheet.getColumnCount();
//for (var i = 0; i < rc; i++) {
// for (var j = 0; j < cc; j++) {
// sheet.getCell(i, j).locked(false);
// }
//}
let range = sheet.getRange(1, 0, rc, cc);
range.locked(false);
let style = new GC.Spread.Sheets.Style();
style.locked = true;
style.backColor = 'red';
sheet.setStyle(0, -1, style);
sheet.options.isProtected = true;
// 恢复
spread.resumePain();
|