我这边就是要实现锁定和解锁部分单元格以及整张表格,做法分别是:
锁定部分单元格:
let defaultStyle = sheet.getDefaultStyle();
defaultStyle.locked = false;
sheet.setDefaultStyle(defaultStyle, GC.Spread.Sheets.SheetArea.viewport);
ranges.forEach((range) => {
sheet.getRange(range.r, range.c, range.rc, range.cc).locked(true);
});
sheet.options.isProtected = true;
解锁部分单元格:
let sheetIsProtected = sheet.options.isProtected;
if (sheetIsProtected) {
ranges.forEach((range) => {
sheet.getRange(range.r, range.c, range.rc, range.cc).locked(false);
});
} else {
//不锁定的话,解锁就没有意义
return;
}
锁定整张表格:
let defaultStyle = sheet.getDefaultStyle();
defaultStyle.locked = true;
sheet.setDefaultStyle(defaultStyle, GC.Spread.Sheets.SheetArea.viewport);
sheet.options.isProtected = true;
解锁整张表格
let defaultStyle = sheet.getDefaultStyle();
defaultStyle.locked = true;
sheet.setDefaultStyle(defaultStyle, GC.Spread.Sheets.SheetArea.viewport);
sheet.options.isProtected = false;
这四个操作需要每次执行的时候都能达到效果,但是现在解锁部分单元格会影响locksheet的操作,我这边的想法是在解锁表格和锁定表格之前先遍历所有的单元格并将每个单元格style中的locked属性去除,之后单元格的locked属性就是继承defaultStyle的中的locked属性,然后我就可以之间修改defaultStyle来修改所有单元格。而且json串也可以减少。但是现在这一步除了问题,单元格没有继承defaultStyle中的locked属性。所以希望你们能够帮我解决一下这个问题,或者有其他方案能够解决我们的需求。
还有我们这边有蛮多的spreadjs的问题,每次发帖效率太低,能不能给我qq什么的,能及时沟通,我们是要买这个产品的 |