找回密码
 立即注册

QQ登录

只需一步,快速开始

Lynn.Dou 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-4-28 14:32  /   查看:2202  /  回复:0
背景:
客户需求,spread指定sheet才显示新增的菜单项,其他sheet不显示。
步骤:
1、创建命令
  1. var newMenuItem = {
  2.                 canUndo: true,
  3.                 name: "newMenuItem",
  4.                 execute: function (context, options, isUndo) {
  5.                     var Commands = GC.Spread.Sheets.Commands;
  6.                     if (isUndo) {
  7.                         Commands.undoTransaction(context, options);
  8.                         return true;
  9.                     } else {
  10.                         Commands.startTransaction(context, options);
  11.                         var sheet = context.getSheetFromName(options.sheetName);
  12.                         alert("添加的新右键菜单项");

  13.                         Commands.endTransaction(context, options);
  14.                         return true;
  15.                     }
  16.                 }
  17.             };
复制代码
2、注册命令
  1. spread.commandManager().register("newMenuItem", newMenuItem);
复制代码
3、重写右键菜单
  1. function MyContextMenu() { }
  2.             MyContextMenu.prototype = new GC.Spread.Sheets.ContextMenu.ContextMenu(spread);
  3.             MyContextMenu.prototype.onOpenMenu = function (menuData, itemsDataForShown, hitInfo, spread) {
  4.                 var sheetIndex = spread.getActiveSheetIndex()
  5.                 // 如果为sheet1,则添加新项
  6.                 if (sheetIndex == 0) {
  7.                     itemsDataForShown.push({
  8.                         text: "新项",
  9.                         name: "newItem",
  10.                         command: "newMenuItem",
  11.                         workArea: "viewportcolHeaderrowHeaderslicercorner"
  12.                     });
  13.                 }
  14.             };
  15.             var contextMenu = new MyContextMenu();
  16.             spread.contextMenu = contextMenu;
复制代码
测试结果如下图:
image.png64442748.png

完整代码请参考附件demo。

右键菜单-根据sheet显示新增的菜单项.html

4.37 KB, 下载次数: 97

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部