找回密码
 立即注册

QQ登录

只需一步,快速开始

卿词。

金牌服务用户

7

主题

32

帖子

81

积分

金牌服务用户

积分
81
卿词。
金牌服务用户   /  发表于:2024-11-25 14:59  /   查看:201  /  回复:10
1金币
本帖最后由 Richard.Huang 于 2024-11-25 15:16 编辑

image.png824254455.png

10 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-11-25 15:15:45
沙发
您好,双击的目的是为了激活单元格,让单元格进入编辑状态,请问您的实际场景和需求是什么,能否告知我,方便我为您提供更加精确的处理方案和方法
回复 使用道具 举报
卿词。
金牌服务用户   /  发表于:2024-11-25 15:19:50
板凳
Richard.Huang 发表于 2024-11-25 15:15
您好,双击的目的是为了激活单元格,让单元格进入编辑状态,请问您的实际场景和需求是什么,能否告知我,方 ...

就是目前我自定义了单元格,单元格里存储了对象,双击单元格就会出现object,我不想显示这个
回复 使用道具 举报
卿词。
金牌服务用户   /  发表于:2024-11-25 15:23:06
地板
Richard.Huang 发表于 2024-11-25 15:15
您好,双击的目的是为了激活单元格,让单元格进入编辑状态,请问您的实际场景和需求是什么,能否告知我,方 ...

QQ20241125-152037.mp4 (583.83 KB, 下载次数: 11)
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-11-25 15:24:11
5#
卿词。 发表于 2024-11-25 15:19
就是目前我自定义了单元格,单元格里存储了对象,双击单元格就会出现object,我不想显示这个

我理解您要的功能,我想知道的是,您具体的场景,以及您这样做的需求是什么,以免即使我为您提供了禁止双击的方法后,您后期随着您的开发深入,您还会遇到其他随之而来的问题。
回复 使用道具 举报
卿词。
金牌服务用户   /  发表于:2024-11-25 15:37:03
6#
本帖最后由 卿词。 于 2024-11-25 15:38 编辑
Richard.Huang 发表于 2024-11-25 15:24
我理解您要的功能,我想知道的是,您具体的场景,以及您这样做的需求是什么,以免即使我为您提供了禁止双 ...

就是用户会双击到单元格,然后出现个object很不好,然后还有一个问题是,复制不了单元格的文本,一复制就复制出来object,我希望是复制的时候是复制到单元格的文本
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-11-25 17:24:58
7#
对于您的双击不期望激活单元格的需求可以参考一下设置:
  1. // 监听双击事件
  2. sheet.bind(GC.Spread.Sheets.Events.CellDoubleClick, function (sender, args) {
  3.     sheet.endEdit(true);// 结束编辑
  4. });
复制代码

对于您的第二个问题,可以参考这篇知识库文章:https://demo.grapecity.com.cn/sp ... d_paste_customCells
回复 使用道具 举报
卿词。
金牌服务用户   /  发表于:2024-11-25 20:32:46
8#
Richard.Huang 发表于 2024-11-25 17:24
对于您的双击不期望激活单元格的需求可以参考一下设置:

对于您的第二个问题,可以参考这篇知识库文章: ...

好的,谢谢 第一个问题解决了,就是第二个还是不行 image.png822109374.png
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-11-26 12:30:50
9#
卿词。 发表于 2024-11-25 20:32
好的,谢谢 第一个问题解决了,就是第二个还是不行

对于您的第二个问题,主要原因在于,您的这个下拉组件引用的是第三方的插件,其中会有很多兼容性的问题,比较好的处理办法如下,在粘贴前将您要粘贴的内容进行修改,粘贴结束后将您原本修改的区域进行复原,从而实现您要的效果

  1. // 记录text
  2. sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (sender, args) {
  3.   this.tempData = [];
  4.   var row = args.fromRange.row;
  5.   var col = args.fromRange.col;
  6.   var rowCount = args.fromRange.rowCount;
  7.   var colCount = args.fromRange.colCount;
  8.   var fromSheetName = args.fromSheet.name()
  9.   for (var i = row; i < row + rowCount; i++) {
  10.     for (var j = col; j < col + colCount; j++) {
  11.       if (sheet.getCellType(i, j) instanceof SelectCellType) {
  12.         this.tempData.push({ fromSheetName: fromSheetName, i: i, j: j, val: sheet.getCell(i, j).value() });
  13.         sheet.setValue(i, j, sheet.getCell(i, j).value().label)// 先把真实值写到单元格上,用于下一步的复制动作
  14.       }
  15.     }
  16.   }
  17. });

  18. // 粘贴结束,把原本的值进行复原
  19. sheet.bind(GC.Spread.Sheets.Events.ClipboardPasted, function (sender, args) {
  20.   this.tempData.forEach(function (data, index) {
  21.     var fromSheet = spread.getSheetFromName(data.fromSheetName);
  22.     fromSheet.setValue(data.i, data.j, data.val)
  23.   })
  24. });
复制代码


回复 使用道具 举报
卿词。
金牌服务用户   /  发表于:2024-11-26 16:07:03
10#
Richard.Huang 发表于 2024-11-26 12:30
对于您的第二个问题,主要原因在于,您的这个下拉组件引用的是第三方的插件,其中会有很多兼容性的问题, ...

好的,谢谢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部