找回密码
 立即注册

QQ登录

只需一步,快速开始

右手微笑
金牌服务用户   /  发表于:2023-7-13 18:10  /   查看:2781  /  回复:13
复制一个单元格,打开另一个单元格的输入框,粘贴的内容末尾带一个\r\n

1689242557877.jpg

13 个回复

正序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-8-15 17:50:41
14#
菜菜。 发表于 2023-8-15 15:56
不是使用ctrl+c v复制粘贴。使用鼠标右键复制粘贴就能复现,我也遇到了此问题

右键复制粘贴的话,您是监听粘贴事件获取到copydata发现末尾带\r\n了吗?
该问题给您带来什么影响了呢?请结合具体的业务需求详细描述下。
另,为避免问题混淆,建议您另开个帖子咨询,也方便后续的问题跟进。
回复 使用道具 举报
菜菜。
注册会员   /  发表于:2023-8-15 15:56:14
13#
Joestar.Xu 发表于 2023-7-21 09:25
您好,考虑到您使用的是您自己实现的输入框,不是SpreadJS原生的输入框,而且SpreadJS目前没有办法去掉这个 ...

不是使用ctrl+c v复制粘贴。使用鼠标右键复制粘贴就能复现,我也遇到了此问题
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-7-21 09:25:17
12#
您好,考虑到您使用的是您自己实现的输入框,不是SpreadJS原生的输入框,而且SpreadJS目前没有办法去掉这个\r\n。

另外我在SpreadJS中测试了一下:

image.png214175414.png

在text中,换行没有出现\r\n
在html中,换行只有\n,没有\r\n

听您之前的描述,是说无法区分用户的换行和 SpreadJS 的换行,但是从我测试的结果来看只需要替换掉\r\n应该就能实现这个需求。

综上所述我未能复现出您描述的问题,还是请您提供一个可以复现这个问题的Demo,这边实际测试一下。
回复 使用道具 举报
右手微笑
金牌服务用户   /  发表于:2023-7-20 18:41:21
11#
Joestar.Xu 发表于 2023-7-20 17:59
您好,从测试来看,跟您前面的描述的“自己修改了输入框”有关,您是如何进行的修改呢?请提供一个可以复现 ...

1、自己实现输入框:

因为我们要实现富文本编辑,所以使用prosemirror实现了一个输入框,浮在了单元格上边,正因为是富文本,所以识别HTML,因此\r\n就会出现换行的现象
2、因为我们无法区别换行是用户自己加的还是您这边框架带的,所以不能全都清除
3、我刚才测试过了,excel复制一个单元格,出来的数据没有\r\n
image.png857065124.png
4、从excel复制一个单元格,粘贴到我们表格的输入框中,没有出现最后有一个换行的现象
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-7-20 17:59:18
10#
您好,从测试来看,跟您前面的描述的“自己修改了输入框”有关,您是如何进行的修改呢?请提供一个可以复现的Demo使我能够重现出您录屏所演示的问题。

另外,也请您描述一下为什么要修改原生的输入框,需要了解您的业务需求,这有利于问题的进一步调研。
回复 使用道具 举报
右手微笑
金牌服务用户   /  发表于:2023-7-20 15:31:36
9#
Joestar.Xu 发表于 2023-7-20 11:58
这个没有办法,如上面所述,SpreadJS是要与Excel保持兼容的,在Excel中复制也会有一个\r\n,所以SpreadJS ...

刚才看了excel,好像末尾没有\r\n
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-7-20 11:58:56
8#
右手微笑 发表于 2023-7-20 10:42
如果是用户自己加的换行,我们是不能去除的,现在就是没办法区分是用户行为还是框架数据,框架这边有没有其 ...

这个没有办法,如上面所述,SpreadJS是要与Excel保持兼容的,在Excel中复制也会有一个\r\n,所以SpreadJS也会有\r\n。
回复 使用道具 举报
右手微笑
金牌服务用户   /  发表于:2023-7-20 10:42:43
7#
如果是用户自己加的换行,我们是不能去除的,现在就是没办法区分是用户行为还是框架数据,框架这边有没有其他办法可以不加这个换行符呢
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-7-20 09:36:06
6#
您好,这个行为是与Excel保持一致的,在下面的Gif图中可以看到从Excel复制粘贴出来后会多一个\r\n。

1.gif66678465.png

如果想要去除,可以在clipboardChanged这个事件中进行处理,如:

  spread.bind(
    GC.Spread.Sheets.Events.ClipboardChanged,
    function (sender, args) {
      console.log("ClipboardChanged.", args);
      args.copyData.text = args.copyData.text.replace("\r\n", "");
      args.copyData.html = args.copyData.html.replace("\r\n", "");
    }
  );
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部