找回密码
 立即注册

QQ登录

只需一步,快速开始

飞龙海

金牌服务用户

3

主题

7

帖子

22

积分

金牌服务用户

积分
22
最新发帖
飞龙海
金牌服务用户   /  发表于:2024-4-15 15:49  /   查看:2058  /  回复:6
需求场景:模板限制只允许部分区域可编辑,要求实现不可编辑的单元格可加入背景色,且不影响最终生成的表和打印出的表的样式。
我们所有的模板保护区域都不一样,通过 sheet.getRange(0, 0, 0, 0).backColor("red")  无法精准的控制每一个模板的颜色区域,想问一下这种需求有没有好一点的解决办法。


6 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-4-15 16:38:20
沙发
1、对不可编辑的单元格设置背景色,当导出或者生成PDF时,可以复制一个工作簿,将此工作簿中不可编辑的单元格取消背景色,或者重置为您所需要的样式。
  1. var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'));
  2. let tempSpread = new GC.Spread.Sheets.Workbook()
  3. tempSpread.fromJSON(spread.toJSON())
复制代码

2、一个模板设置一个不可编辑区域信息,可以将其保存在tag
sheet.tag('您的不可编辑区域信息')

需要的时候,通过sheet.tag()获取。
获取到此区域后,您可以设置locked属性为true ,使其变为不可编辑区域。同时也可以设置背景色
  1. let style = new GC.Spread.Sheets.Style
  2. style.locked = false;
  3. sheet.setDefaultStyle(style)

  4. var style2 = new GC.Spread.Sheets.Style();
  5. style2.locked = true;
  6. style2.backColor = "red";
  7. sheet.setStyle(0, -1, style2);


  8. sheet.options.isProtected   = true;
复制代码


回复 使用道具 举报
飞龙海
金牌服务用户   /  发表于:2024-4-15 16:48:00
板凳
Ellia.Duan 发表于 2024-4-15 16:38
1、对不可编辑的单元格设置背景色,当导出或者生成PDF时,可以复制一个工作簿,将此工作簿中不可编辑的单元 ...

我们在制作模版的时候就已经对相应的单元格区域设置了保护,现在需要实现的是在代码里动态设置这些区域的背景色
回复 使用道具 举报
香香
注册会员   /  发表于:2024-4-15 17:05:05
地板
飞龙海 发表于 2024-4-15 16:48
我们在制作模版的时候就已经对相应的单元格区域设置了保护,现在需要实现的是在代码里动态设置这些区域的 ...

不能编辑的区域应该是sheet 被 protect,然后不可编辑的cell的lock 属性是true,通过判断lock属性的值然后给cell设置背景色。不知道能否满足您的需求?

评分

参与人数 1金币 +100 收起 理由
Joestar.Xu + 100 赞一个!

查看全部评分

回复 使用道具 举报
飞龙海
金牌服务用户   /  发表于:2024-4-15 17:43:34
5#
香香 发表于 2024-4-15 17:05
不能编辑的区域应该是sheet 被 protect,然后不可编辑的cell的lock 属性是true,通过判断lock属性的值然 ...

好的,谢谢,我再试一试
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-4-15 17:50:06
6#
飞龙海 发表于 2024-4-15 17:43
好的,谢谢,我再试一试

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-4-24 11:08:27
7#
请问上述方案能否解决您的问题,如果有需要,请继续回帖沟通
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部