找回密码
 立即注册

QQ登录

只需一步,快速开始

huidehan
金牌服务用户   /  发表于:2024-6-5 10:21  /   查看:1142  /  回复:9
本帖最后由 huidehan 于 2024-6-5 15:18 编辑

1.我们想在【数据】和【视图】两个tab中间加一个【审阅】的tab,请问可以吗,我看教程的好像都是在最后追加,这个已经尝试能实现

image.png22296446.png
2.在审阅tab里我们想加一个【保护工作薄】的功能,存储一个布尔类型的状态,这个状态需要toJson的时候保留下来,能帮忙找个例子吗?还有就是自定义的状态有没有什么要求防止和spreadJs后续功能支持冲突。
image.png150759581.png
我们使用如下方式存储了这个标识,现在该标识可以导出,但是再次导入时这个 isProtectionWorkbook 标识会丢失,所以这个状态我们应该放在哪里呢
  1. const commands = {
  2.     // 小图标
  3.     'protectionWorkbook': {
  4.       text: '保护工作薄',
  5.       type: 'checkbox',
  6.       iconClass: 'ribbon-button-namemanager',
  7.       bigButton: true,
  8.       commandName: 'protectionWorkbook',
  9.       execute: async (context, _, checked ) => {
  10.         context.getWorkbook().options.isProtectionWorkbook = checked
  11.       },
  12.       getState: (context) => {
  13.         return context.getWorkbook().options.isProtectionWorkbook
  14.       },
  15.     },
  16.   }
复制代码

3.如何禁用sheet名称上的某个菜单,比如当用户开启保护工作薄后,我们期望sheet的取消隐藏按钮不可用
image.png886522216.png



9 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-5 15:24:31
沙发
您好,关于您的第二个问题,您可以存储在worksheet的tag上。

参考这个帖子:https://gcdn.grapecity.com.cn/showtopic-218160-1-1.html
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-5 15:28:28
板凳
关于第三个问题,可以参考以下代码来实现:

  1. let oldOpenMenu = spread.contextMenu.onOpenMenu;
  2. spread.contextMenu.onOpenMenu = function (
  3.   menuData,
  4.   itemsDataForShown,
  5.   hitInfo,
  6.   spread
  7. ) {
  8.   oldOpenMenu.apply(this, arguments);
  9.   console.log(itemsDataForShown);
  10.   if (spread.getActiveSheet().options.isProtected) {
  11.     itemsDataForShown.forEach((element) => {
  12.       if (element.command == "contextMenuUnhideSheet") {
  13.         element.disable = true;
  14.       }
  15.     });
  16.   }
  17. };
复制代码


image.png367956542.png
回复 使用道具 举报
huidehan
金牌服务用户   /  发表于:2024-6-5 15:30:29
地板
Joestar.Xu 发表于 2024-6-5 15:24
您好,关于您的第二个问题,您可以存储在worksheet的tag上。

参考这个帖子:https://gcdn.grapecity.com ...

这种方式,当我活跃的sheet不是最开始设置的那个sheet,还能读取到正确的值吗
回复 使用道具 举报
huidehan
金牌服务用户   /  发表于:2024-6-5 15:32:05
5#
Joestar.Xu 发表于 2024-6-5 15:28
关于第三个问题,可以参考以下代码来实现:

好的 这个我试试
回复 使用道具 举报
huidehan
金牌服务用户   /  发表于:2024-6-5 15:36:36
6#
Joestar.Xu 发表于 2024-6-5 15:24
您好,关于您的第二个问题,您可以存储在worksheet的tag上。

参考这个帖子:https://gcdn.grapecity.com ...

这个我试了下,是和sheet绑定的,我们想要的是一个与sheet无关的状态存储
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-5 16:39:52
7#
您好,也可以试试放在名称管理器中:

image.png571286010.png

参考:https://demo.grapecity.com.cn/sp ... kbook#addcustomname
回复 使用道具 举报
huidehan
金牌服务用户   /  发表于:2024-6-5 17:02:41
8#
Joestar.Xu 发表于 2024-6-5 16:39
您好,也可以试试放在名称管理器中:

好 我们看看
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-5 17:33:44
9#
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-7-2 12:11:49
10#
您好,由于本帖较长时间没有回复,本帖先做结贴处理了,后续如您有其他问题,欢迎您开新帖提问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部