找回密码
 立即注册

QQ登录

只需一步,快速开始

Jobcrazy

初级会员

29

主题

96

帖子

387

积分

初级会员

积分
387
Jobcrazy
初级会员   /  发表于:2018-4-23 11:14  /   查看:3285  /  回复:3
image.png614368896.png
在使用 spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.v, true, false, false, false); 禁用Ctrl+V后,重构的逻辑无效了~

3 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-4-23 17:37:28
沙发
因为您禁用了,肯定就无效了啊,您将重构改为一个方法。
然后将setShortKey中的null改为您重构的方法名就好了。
回复 使用道具 举报
Jobcrazy
初级会员   /  发表于:2018-4-24 11:05:08
板凳
ClarkPan 发表于 2018-4-23 17:37
因为您禁用了,肯定就无效了啊,您将重构改为一个方法。
然后将setShortKey中的null改为您重构的方法名就 ...

是将 箭头指的 粘贴的方法paste_operation(spread, 'values') 这个替换掉null么?
  1. function paste_operation(spread, content) {
  2.                         var value = JSON.parse(sessionStorage.getItem('cutCopy_value')),
  3.                             sheet = spread.getActiveSheet(),
  4.                             selections = sheet.getSelections();
  5.                         for (var i = 0; i < selections.length; i++) {
  6.                             var target_row = selections[i].row,
  7.                                 target_col = selections[i].col;
  8.                             for (var k in value) {
  9.                                 for (var j in value[k]) {
  10.                                     var style = new GC.Spread.Sheets.Style();
  11.                                     if (content == 'formula') {
  12.                                         sheet.setFormula(parseInt(k) + target_row, parseInt(j) + target_col, value[k][j].formula);
  13.                                     } else if (content == 'formatting') {
  14.                                         for (var h in value[k][j].style) {
  15.                                             if (typeof value[k][j].style[h] == 'string') {
  16.                                                 style[h] = value[k][j].style[h]
  17.                                             }
  18.                                         }
  19.                                         sheet.setStyle(parseInt(k) + target_row, parseInt(j) + target_col, style, GC.Spread.Sheets.SheetArea.viewport);
  20.                                     } else if (content == 'values') {
  21.                                         sheet.setValue(parseInt(k) + target_row, parseInt(j) + target_col, value[k][j].value);
  22.                                     } else if (content == 'all') {
  23.                                         sheet.setFormula(parseInt(k) + target_row, parseInt(j) + target_col, value[k][j].formula);
  24.                                         for (var h in value[k][j].style) {
  25.                                             if (typeof value[k][j].style[h] == 'string') {
  26.                                                 style[h] = value[k][j].style[h]
  27.                                             }
  28.                                         }
  29.                                         sheet.setStyle(parseInt(k) + target_row, parseInt(j) + target_col, style, GC.Spread.Sheets.SheetArea.viewport);
  30.                                         sheet.setValue(parseInt(k) + target_row, parseInt(j) + target_col, value[k][j].value);
  31.                                     }
  32.                                 }
  33.                             }
  34.                         }
  35.                     }
复制代码
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-4-24 15:37:27
地板
需要在commandManager中注册一个方法,参考:
http://runjs.cn/code/4k4hz2ew
demo中有写如何进行注册,以及如何进行调用。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部