找回密码
 立即注册

QQ登录

只需一步,快速开始

薇命是从
金牌服务用户   /  发表于:2024-7-1 08:37  /   查看:1461  /  回复:9
1金币
复现视频见附件、

希望复制只会复制单元格文字、而单元格样式、单元格绑定字段都不会被复制

d136f11c048f5cc701fbcb702b7cfbf1.mp4

6.61 MB, 下载次数: 379

最佳答案

查看完整内容

您好,可以对右键菜单禁用: 如果您使用的是SpreadJS ,不是Designer组件,可以参考下面的代码 在上述代码中,判断出右键菜单中是剪切以及复制全部后,将其disable属性设置为true。结果如下: 当然,您可以在此基础上,继续对粘贴的其他选项进行设置: 除此之外,如果您想对某一个区域设置限制, 则我们需要在openMenu中判断区域 ,如果是,则禁用菜单,而不是全局禁用菜单,可以参考下面的代码:

9 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-1 08:37:32
来自 7#
本帖最后由 Ellia.Duan 于 2024-7-4 10:48 编辑

您好,可以对右键菜单禁用:

如果您使用的是SpreadJS ,不是Designer组件,可以参考下面的代码
  1.   spread.contextMenu.menuData.forEach(item => {
  2.             if (item.name === "contextMenuCut" || item.name ===  "designerPasteAll") {
  3.                 item.disable = true;
  4.             }
  5.         })
复制代码
在上述代码中,判断出右键菜单中是剪切以及复制全部后,将其disable属性设置为true。结果如下:
image.png236593016.png
当然,您可以在此基础上,继续对粘贴的其他选项进行设置:

1720061221487.jpg227831420.png




除此之外,如果您想对某一个区域设置限制,
则我们需要在openMenu中判断区域 ,如果是,则禁用菜单,而不是全局禁用菜单,可以参考下面的代码:
  1.         function ContextMenu() {
  2.         }

  3.         ContextMenu.prototype = new GC.Spread.Sheets.ContextMenu.ContextMenu(spread);
  4.         ContextMenu.prototype.onOpenMenu = function (menuData, itemsDataForShown, hitInfo, spread) {
  5.             let sheet = spread.getActiveSheet();
  6.             let selections = sheet.getSelections();

  7.             for (let i = 0; i < itemsDataForShown.length; i++) {
  8.                 var item = itemsDataForShown[i];
  9.                 if (item.name === "gc.spread.clearContents" && (selections[0].col == 0)) {
  10.                     item.disable = true;
  11.                 }
  12.             }
  13.         };

  14.         spread.contextMenu = new ContextMenu();
复制代码


回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-1 11:50:11
2#
您好,您视频中提到了三个问题:
1、粘贴问题,希望仅粘贴值,不希望粘贴样式
可以通过下面代码实现:
  1.      sheet.options.clipBoardOptions = GC.Spread.Sheets.ClipboardPasteOptions.values;
复制代码

2、剪切问题,您是希望用户不能点击剪切?还是剪切后,被复制的单元格样式仍在,粘贴的单元格仅粘贴值?
3、绑定路径问题:
通过设置问题一的解决方案,也可以解决此问题。
  1.      sheet.options.clipBoardOptions = GC.Spread.Sheets.ClipboardPasteOptions.values;
复制代码


关于粘贴选项,可以参考下面的链接
https://demo.grapecity.com.cn/sp ... PasteOptions#values
回复 使用道具 举报
薇命是从
金牌服务用户   /  发表于:2024-7-3 15:30:27
3#
Ellia.Duan 发表于 2024-7-1 11:50
您好,您视频中提到了三个问题:
1、粘贴问题,希望仅粘贴值,不希望粘贴样式
可以通过下面代码实现:

目前是想实现的是复制、剪切都只会去粘贴复制单元格的值、样式以及公式其他的都不会粘贴
但是我这边按照您提供的方式并没有生效
回复 使用道具 举报
薇命是从
金牌服务用户   /  发表于:2024-7-3 15:49:49
4#
Ellia.Duan 发表于 2024-7-1 11:50
您好,您视频中提到了三个问题:
1、粘贴问题,希望仅粘贴值,不希望粘贴样式
可以通过下面代码实现:
  1. const initSpread = (value) => {
  2.   spread = value
  3.   sheet = spread.getActiveSheet()
  4.   // scrollbarMaxAlign: 滚动条是否对齐视图中表单的最后一行或一列。
  5.   // scrollbarShowMax: 是否基于表单全部的行列总数显示滚动条。
  6.   spread.options.scrollbarMaxAlign = true
  7.   // spread.options.scrollbarShowMax = true;
  8.   // 为方便调试引入下方代码,生产环境请移除
  9.   window.GC = GC
  10.   window.spread = spread
  11.   window.sheet = sheet

  12.   setPrintInfo(spread)
  13.   //本示例使用InvalidOperation事件
  14.   spread.options.highlightInvalidData = true;
  15.   // 设置移动端滚动条
  16.   spread.options.scrollbarAppearance = GC.Spread.Sheets.ScrollbarAppearance.mobile
  17.   spread.getActiveSheet().options.clipBoardOptions = GC.Spread.Sheets.ClipboardPasteOptions.values;

  18. }
复制代码
这是我相关的实现代码、

video(1).zip

18.25 MB, 下载次数: 391

复现相关视频

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-3 18:16:58
5#
您好,如果是在移动端,出现右键菜单进行复制,粘贴。您需要 选择仅粘贴值
image.png12870177.png
而且剪切功能做不到您想要的仅粘贴值,您可以考虑禁止剪切功能的点击。
回复 使用道具 举报
薇命是从
金牌服务用户   /  发表于:2024-7-4 10:30:08
6#
Ellia.Duan 发表于 2024-7-3 18:16
您好,如果是在移动端,出现右键菜单进行复制,粘贴。您需要 选择仅粘贴值

而且剪切功能做不到您想要的 ...

这个可以关闭其他选项么、粘贴只存在粘贴文字一个选项么?
另外、要如何禁用剪切功能呢
回复 使用道具 举报
薇命是从
金牌服务用户   /  发表于:2024-7-4 11:01:03
8#
Ellia.Duan 发表于 2024-7-4 10:47
您好,可以对右键菜单禁用:

如果您使用的是SpreadJS ,不是Designer组件,可以参考下面的代码

好的、谢谢、我试一下
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-4 14:08:15
9#
薇命是从 发表于 2024-7-4 11:01
好的、谢谢、我试一下

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