请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Litt101

注册会员

8

主题

29

帖子

93

积分

注册会员

积分
93
最新发帖
Litt101
注册会员   /  发表于:2024-6-7 16:26  /   查看:148  /  回复:10
1金币
image.png833801574.png image.png854466857.png
V12版本。通过该方式实现对于粘贴区域存在只读单元格的复制时发现,当复制区域大于选中的粘贴区域,并且复制区域大于表格的最大行数或列数,粘贴没有反应,这种情况如何避免?

10 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-7 18:01:05
沙发
您好,这个属于产品的设计,在粘贴的时候会先判断区域大小是否允许:

image.png499712829.png

如果大小不够的话,是不会执行ClipboardPasting事件的。
回复 使用道具 举报
Litt101
注册会员   /  发表于:2024-6-7 19:03:41
板凳
你好,我这没有这个提示呢,这个提示是怎么加的呢
回复 使用道具 举报
Litt101
注册会员   /  发表于:5 天前
地板
Joestar.Xu 发表于 2024-6-7 18:01
您好,这个属于产品的设计,在粘贴的时候会先判断区域大小是否允许:

老师你好,我们环境没有出现这个提示,有这个提示我们也接受的
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:5 天前
5#
您好,这个提示是设计器上的提示,SpreadJS原生上没有这个提示,不过您可以通过监听InvalidOperation事件来实现:

  1. sheet.bind(GC.Spread.Sheets.Events.InvalidOperation, function (e, info) {
  2.   alert("Message (" + info.message + ")");
  3. });
复制代码


image.png482612609.png
回复 使用道具 举报
Litt101
注册会员   /  发表于:5 天前
6#
1.png443638610.png 2.png504667663.png

场景1:B6为只读单元格,A8B8为合并单元格,这时复制B4B5单元格到B7,会触发InvalidOperation两次,会弹出两次提示,如果把A8B8单元格取消合并,这时不会有提示,且只会复制B7单元格,我想实现不会出现提示,或者只提示一次

场景2:B9为只读单元格,A11B11非合并单元格,把B4-B8复制到B9B10,会触发InvalidOperation两次,且不会走粘贴前后事件,但是对于只读单元格的粘贴,实现方式是先将单元格设置为非只读,粘贴后再将单元格设置为只读,这种情况B9在粘贴不成功的情况下从只读变成了非只读是不可以的
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:5 天前
7#
您好,场景1:不清楚为什么会出现两次InvalidOperation,请您提供一下这个模板及相关代码,这边复现后调研一下看看。

场景2:根据您的描述,猜测是InvalidOperation和Paste的两个事件出现了冲突,即使InvalidOperation了也依然执行了Paste,需要您提供一下模板文件和代码,这边排查下看看是否有相关方案。
回复 使用道具 举报
Litt101
注册会员   /  发表于:4 天前
8#
老师你好,弹框两遍的问题在这个demo中没复现出来,但是单元格只读变成非只读问题复现了

V12复制粘贴跳过只读单元格.zip

2.63 MB, 下载次数: 5

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:4 天前
9#
您好,这个问题的原因是在粘贴的时候会调用此处的代码,导致表单的保护状态被关闭。

image.png495543517.png

而因为InvalidOperation使得ClipboardPasted事件中的sheet.options.isProtected = true;没有执行,所以表单的保护状态没有恢复。

一个比较简单的解决方案是在InvalidOperation中添加sheet.options.isProtected = true;。
回复 使用道具 举报
Litt101
注册会员   /  发表于:4 天前
10#
Joestar.Xu 发表于 2024-6-12 14:22
您好,这个问题的原因是在粘贴的时候会调用此处的代码,导致表单的保护状态被关闭。

老师你能远程看下为啥提示出现两次吗?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部