jyjc 发表于 2021-7-26 15:21:21

spreadjs剪切时如何只剪切值不剪切格式、样式等(SJS-9473)

本帖最后由 Clark.Pan 于 2021-7-26 17:20 编辑

spreadjs剪切时如何只剪切值不剪切格式、样式等

Clark.Pan 发表于 2021-7-26 16:11:47

剪切的逻辑SpreadJS与Excel一样,是无法做到只剪切值不剪切样式的,原因是剪切顾名思义就像拿剪刀剪去这一片区域,然后贴在另一部分,本身就是全量的,所以设计原理就不需要在剪切的基础上再去区分值和样式。
如果想要实现您的需求,可以使用getArray和setArray,利用getArray方法将当前所选区域的值全部拿出来,然后通过setArray设置到指定区域中去。

jyjc 发表于 2021-7-26 16:20:54

如果是这种方式的话,就意味着我需要重写剪切方法,如下:
commandManager.register("xcut", {
                canUndo: true,
                execute: function (context, options, isUndo) {
                  debugger
                  var Commands = $3rd.spreadJS.Sheets.Commands;
                  // 在此加cmd
                  options.cmd = "xcut";
                  if (isUndo) {
                        Commands.undoTransaction(context, options);
                        return true;
                  } else {
                        Commands.startTransaction(context, options);
                        var sheet = StaticData.spread.getActiveSheet();
                        var ranges = sheet.getSelections();

                        Commands.endTransaction(context, options);
                        return true;
                  }
                }
            });
            commandManager.setShortcutKey("xcut", $3rd.spreadJS.Commands.Key.x, true, false, false, false);
但是这样有两个问题:
1、我在粘贴的时候无法判断剪切版上的数据的来源,那么这个时候不知道该不该用setArray
2、重写的剪切,没有自带剪切的功能了,比如虚线等
请问一下该怎么解决了

Clark.Pan 发表于 2021-7-26 16:32:42

1.这个如果您要绑定的ctrl+x上确实比较麻烦,要判断是内部粘贴还是外部粘贴,
2.虚线确实目前没有太好的办法。
我提个需求,当做后续的需求处理吧。

jyjc 发表于 2022-1-7 09:32:09

请问这个问题现在是什么进展?

Derrick.Jiao 发表于 2022-1-7 10:07:03

jyjc 发表于 2022-1-7 09:32
请问这个问题现在是什么进展?

该需求已通过评估,有望在后续版本实现,具体有实现版本后也会在本帖更新。

newAll 发表于 2023-6-7 12:43:40

Derrick.Jiao 发表于 2022-1-7 10:07
该需求已通过评估,有望在后续版本实现,具体有实现版本后也会在本帖更新。

目前是否支持?如果支持如何配置?

Lynn.Dou 发表于 2023-6-7 16:01:08

newAll 发表于 2023-6-7 12:43
目前是否支持?如果支持如何配置?

目前版本还不支持此功能,如果后续有相关开发计划,会在贴中通知您。:mj72:

宁静致远2022 发表于 2024-7-29 19:46:02

spreadjs v15.0.2版本,目前是否支持?如果支持如何配置?

Joestar.Xu 发表于 2024-7-30 09:19:48

宁静致远2022 发表于 2024-7-29 19:46
spreadjs v15.0.2版本,目前是否支持?如果支持如何配置?

您好,目前不支持选择性剪切,可以参考楼上的回复使用getArray和setArray的方式来实现。
页: [1]
查看完整版本: spreadjs剪切时如何只剪切值不剪切格式、样式等(SJS-9473)