找回密码
 立即注册

QQ登录

只需一步,快速开始

HONG

注册会员

4

主题

8

帖子

32

积分

注册会员

积分
32
  • 146

    金币

  • 4

    主题

  • 8

    帖子

最新发帖
HONG
注册会员   /  发表于:2023-5-22 15:18  /   查看:913  /  回复:5
5金币
大部分单元格都可以复制粘贴 但是部分列实现不可复制粘贴的操作 。例如第五列整列的值都不可以复制和粘贴
不知道怎么实现。不要用单元格保护

最佳答案

查看完整内容

了解了,要实现您的需求,需要重写四个command,示例代码如下:

5 个回复

正序浏览
HONG
注册会员   /  发表于:2023-5-23 09:26:18
5#
JoestarXu 发表于 2023-5-22 16:34
了解了,请问您使用的版本是多少呢?是否使用了Designer呢?

我们需要您的版本信息来判断一下合理的解 ...

gc.spread.sheets.all.14.2.5.min.js   应该是没有用designer的 我都不知道那是啥
回复 使用道具 举报
JoestarXu
超级版主   /  发表于:2023-5-22 16:34:38
4#
HONG 发表于 2023-5-22 15:52
快捷键 右侧菜单应该全禁用

了解了,请问您使用的版本是多少呢?是否使用了Designer呢?

我们需要您的版本信息来判断一下合理的解决方案。
回复 使用道具 举报
HONG
注册会员   /  发表于:2023-5-22 15:52:54
3#
JoestarXu 发表于 2023-5-22 15:49
您好,请问你说的复制粘贴是指使用快捷键还是右键菜单呢?

快捷键 右侧菜单应该全禁用
回复 使用道具 举报
JoestarXu
超级版主   /  发表于:2023-5-22 15:49:42
2#
您好,请问你说的复制粘贴是指使用快捷键还是右键菜单呢?
回复 使用道具 举报
最佳答案
最佳答案
JoestarXu
超级版主   /  发表于:2023-5-22 15:18:08
来自 6#
HONG 发表于 2023-5-23 09:26
gc.spread.sheets.all.14.2.5.min.js   应该是没有用designer的 我都不知道那是啥

了解了,要实现您的需求,需要重写四个command,示例代码如下:

  1. window.onload = function () {
  2.   let spread = new GC.Spread.Sheets.Workbook(
  3.     document.getElementById("gc-designer-container"),
  4.     { sheetCount: 1 }
  5.   );

  6.   let command = {
  7.     canUndo: false,
  8.     execute: function (context, options, isUndo) {
  9.       let Commands = GC.Spread.Sheets.Commands;
  10.       if (isUndo) {
  11.         Commands.undoTransaction(context, options);
  12.         return true;
  13.       } else {
  14.         Commands.startTransaction(context, options);

  15.         console.log("快捷键复制");

  16.         let spread = context;
  17.         let sheetName = options.sheetName;
  18.         let command = {};
  19.         command.cmd = "copy";
  20.         command.sheetName = sheetName;

  21.         command.callback = function () {
  22.           options.callback(
  23.             command.copyData.copyText,
  24.             command.copyData.copyHtml
  25.           );
  26.         };

  27.         spread.commandManager().execute(command);

  28.         Commands.endTransaction(context, options);
  29.         return true;
  30.       }
  31.     },
  32.   };
  33.   spread.commandManager().register("myCopy", command);
  34.   spread
  35.     .commandManager()
  36.     .setShortcutKey(
  37.       "myCopy",
  38.       GC.Spread.Commands.Key.c,
  39.       true,
  40.       false,
  41.       false,
  42.       false
  43.     );

  44.   let commandV = {
  45.     canUndo: false,
  46.     execute: function (context, options, isUndo) {
  47.       let Commands = GC.Spread.Sheets.Commands;
  48.       if (isUndo) {
  49.         Commands.undoTransaction(context, options);
  50.         return true;
  51.       } else {
  52.         Commands.startTransaction(context, options);

  53.         console.log("快捷键粘贴");

  54.         let spread = context;
  55.         let sheetName = options.sheetName;
  56.         let command = {};
  57.         command.cmd = "paste";
  58.         command.sheetName = sheetName;

  59.         spread.commandManager().execute(command);

  60.         Commands.endTransaction(context, options);
  61.         return true;
  62.       }
  63.     },
  64.   };
  65.   spread.commandManager().register("myPaste", commandV);
  66.   spread
  67.     .commandManager()
  68.     .setShortcutKey(
  69.       "myPaste",
  70.       GC.Spread.Commands.Key.v,
  71.       true,
  72.       false,
  73.       false,
  74.       false
  75.     );

  76.   let contextcopycommand = GC.Spread.Sheets.Commands.copy;
  77.   let oldCopyExecute = contextcopycommand.execute;

  78.   contextcopycommand.execute = function (context, propertyName, args) {
  79.     console.log("右键菜单复制");
  80.     oldExecute.call(this, context, propertyName, args);
  81.   };

  82.   let contextpastecommand = GC.Spread.Sheets.Commands.paste;
  83.   let oldPasteExecute = contextpastecommand.execute;

  84.   contextpastecommand.execute = function (context, propertyName, args) {
  85.     console.log("右键菜单粘贴");
  86.     oldExecute.call(this, context, propertyName, args);
  87.   };

  88. };
复制代码

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部