找回密码
 立即注册

QQ登录

只需一步,快速开始

spreadjs666
金牌服务用户   /  发表于:2024-5-15 17:03  /   查看:3215  /  回复:13
1金币
本帖最后由 Richard.Huang 于 2024-5-29 12:02 编辑

产品:SpreadJS
版本:V17

复制粘贴快捷键与clipboardPaste表现不一致,快捷键为正常内容,clipboardPaste会将单元格中的换行识别为多个单元格。

源数据:
https://docs.qq.com/sheet/DR2F2cGlySW1WalNY?tab=BB08J2

快捷键粘贴:
image.png176077574.png

cmd:clipboardPaste粘贴
image.png348197631.png
  1. spread.commandManager().execute({
  2.   cmd: "clipboardPaste",
  3.   sheetName: "Sheet1",
  4.   pastedRanges: [
  5.     {
  6.       row: 1,
  7.       col: 1,
  8.       rowCount: 6,
  9.       colCount: 1,
  10.     },
  11.   ],
  12.   isCutting: false,
  13.   clipboardText: `1、范德萨发撒
  14. 2、范德萨发撒地方撒
  15. 1、发撒发大发的
  16. 2、范德萨发撒地方
  17. `,
  18.   clipboardHtml: `<meta charset='utf-8'><html xmlns:x="tencent"><meta charset="utf-8"><style type='text/css'><!-- td { empty-cells:show;line-height:normal;color:#000;vertical-align:middle;outline-width:0;word-wrap:break-word;word-break:normal;white-space:nowrap;font-size:10pt; } table { border-collapse: collapse; } font{ white-space: pre-wrap }--></style><body><!--StartFragment--><table style="border-collapse:collapse;table-layout: fixed;width: 0;" selectType="cells"><col     width="101" style="width: 101px;"><tr  height="24" style="mso-height-source:auto;height:24px;"   ><td style="font-size:10pt;border-left: .5pt solid #000000;border-top: .5pt solid #000000;border-right: .5pt solid #000000;border-bottom: .5pt solid #000000;vertical-align:middle;text-align:left;white-space:normal;width: 101px;" width="101" >1、范德萨发撒<br style="mso-data-placement:same-cell;">2、范德萨发撒地方撒</td></tr><tr  height="24" style="mso-height-source:auto;height:24px;"   ><td style="font-size: 10pt;width: 101px;" width="101" ></td></tr><tr  height="24" style="mso-height-source:auto;height:24px;"   ><td style="font-size: 10pt;width: 101px;" width="101" ></td></tr><tr  height="24" style="mso-height-source:auto;height:24px;"   ><td style="font-size: 10pt;width: 101px;" width="101" ></td></tr><tr  height="24" style="mso-height-source:auto;height:24px;"   ><td style="font-size:10pt;vertical-align:bottom;text-align:left;white-space:normal;width: 101px;" width="101" >1、发撒发大发的<br style="mso-data-placement:same-cell;">2、范德萨发撒地方</td></tr><tr  height="24" style="mso-height-source:auto;height:24px;"   ><td data-online-sheet-type='cell-image' tdocs-image-url='https://docimg10.docs.qq.com/image/AgAABuYP8cYKRZ1B9-FCbroSyjpkMF84.png?w=48&h=48' data-online-sheet-width='136' data-online-sheet-height='136' style="font-size:10pt;vertical-align:middle;text-align:left;white-space:no-wrap;width: 101px;" width="101" ><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAfRJREFUaEPtmc1xwjAQhVc9pIfQQw7BFQAdhBSRK/Y1RYR0AFSAc0gP0EN6UCJ5zAhZsrTWyrId+wAz4J/37Vut1hKDkR9s5PphBkjtIJ0Dh5elhGFsp0BVvwGU8pOzL/m9+cipwMMBDq85MP78J7IW66+NsyIUpjtAJVyNtr9w/cwAEDyASBXGzt3VtlzZAQQHQBl1GwcSwh+gD/E1FALCD6BP8UgIN0AK8QiIdoCU4m8QPIPNZzWPGI52gOOWR6k22Juu91addoAhRN8jlewAQ4l+DWFxwQxAEP3lwwLOT2/y8cX1BPnlhE2c+/MtpdUMQBD9fLGC3eOKDkA0hOt9pkdhTAAAvFmRmgAE6SOiFMGBCQAY0qjpwHErOk18b68lZxQH/gsAyewbyQEAbT4wpdDoAeYxEK2MphrE2fc7lD+XsFZCXG1oJwwTWcSX9lCE0QMYOlJbLxQ8kNVulCyFvAEI+iHyeQDVTotcDWypVQASB1AvNAKAwIXQMXu7vmWdaMIv9dKFAZRUxyrdxBe26iRMMR4810fdDqSA8BQvpPkD9FWZEOLxALEhDKsOrlKMc0C9G+W4QEZdldEdIHxslHLXMnDHMhxAd0Umpty1FMf9Nqvs6Xkh/2lZMnelDa0DmKdFOJfWgQgCXbecAVwRiv3/L47oKUCUA2Z8AAAAAElFTkSuQmCC" tdocs-image-url="https://docimg10.docs.qq.com/image/AgAABuYP8cYKRZ1B9-FCbroSyjpkMF84.png?w=48&h=48" tencent-sheet-cell-img='true'></td></tr></table><!--EndFragment--></body></html>`,
  19.   pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all,
  20. });
复制代码

13 个回复

正序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-5-29 12:03:20
14#
您好,由于您长时间未回帖,本贴就先作结帖处理了,后续如果有其他新的问题,欢迎继续发新帖询问
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-5-17 10:02:28
13#
嗯嗯 ,以及楼上给出的demo 是基于17.0.7。在这个版本上是没有问题的。
回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-5-16 20:24:08
12#
Ellia.Duan 发表于 2024-5-16 17:50
您好,经过调研,问题应该在这里clipboardText,

在楼上提供的html文件中 ,添加如下代码

了解了,我们用的是17.0.2,修改text后还是无效,我升级版本试下
回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-5-16 16:27:33
10#
Ellia.Duan 发表于 2024-5-16 16:10
您好,根据您的视频以及 提供的代码确认:
复制您的源数据后,打开测试demo ,此时 粘贴,会出现粘贴为多个 ...

好的,需求已经开发至中后期,期望您能优先处理,十分感谢!
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-5-16 16:10:29
9#
本帖最后由 Ellia.Duan 于 2024-5-16 16:38 编辑

您好,根据您的视频以及 提供的代码确认:
复制您的源数据后,打开测试demo ,此时 粘贴,会出现粘贴为多个单元格的情况,我将深入调研此问题。待有进展,会及时联系您。


同时,发现在SpreadJS/Ms Excel 中复制一个多行单元格  ,均不会出现此问题。似乎和您使用的腾讯文档有关。
如下动图所示:
腾讯文档.gif
回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-5-16 15:17:01
8#
Ellia.Duan 发表于 2024-5-16 14:39
您好 ,使用您提供的代码,复制您提供的源数据,还是没有复现问题,如下图所示:

您好,您给出的代码无法执行,我刚修改了一下。
我是用的是Mac电脑,chrome浏览器,录屏如附件所示,辛苦查看。

屏幕录制2024-05-16 下午3.15.26.mov

6.85 MB, 下载次数: 1025

浏览器复制粘贴.html

3.15 KB, 下载次数: 627

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-5-16 14:39:01
7#
您好 ,使用您提供的代码,复制您提供的源数据,还是没有复现问题,如下图所示:
复制粘贴3.gif

测试代码如下:


浏览器复制粘贴.html

2.72 KB, 下载次数: 575

回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-5-16 10:53:01
6#
本帖最后由 spreadjs666 于 2024-5-16 10:55 编辑
Ellia.Duan 发表于 2024-5-16 09:40
您好,是否漏发了代码,按照您贴出的代码,在您的源数据进行粘贴后,监听到粘贴事件,此时获取到的数据长度 ...

编辑器有点儿问题,let item = items【i】;中的【i】自动消失了
  1. spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.v, false, false, false, true);
  2. document.addEventListener('paste', (e)=> {
  3.       let textItem, htmlItem, imageItem;
  4.   let items = e.clipboardData.items;
  5.     console.log(items);
  6.   for (var i = 0;i< items.length;i++) {
  7.     let item = items[i];
  8.       console.log(item)
  9.     if (item.type === "image/png") {
  10.       imageItem = item
  11.     } else if (item.type === "text/html") {
  12.       htmlItem = item;
  13.     } else if (item.type === "text/plain") {
  14.       textItem = item;
  15.     }
  16.       
  17.   } htmlItem.getAsString((html)=> {
  18.       console.log('Html:', html, new DOMParser().parseFromString(html, 'text/html'));
  19.     })
  20. textItem.getAsString((html)=> {
  21.       console.log('text:', html);
  22.     }) }, true);
复制代码

回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-5-16 09:40:43
5#
您好,是否漏发了代码,按照您贴出的代码,在您的源数据进行粘贴后,监听到粘贴事件,此时获取到的数据长度是0 ,并没有解析数据
image.png219220885.png









回复 使用道具 举报
spreadjs666
金牌服务用户   /  发表于:2024-5-15 19:42:28
4#
spreadjs666 发表于 2024-5-15 18:13
您好,clipboardHtml和clipboardText是从源数据中执行复制,在浏览器剪切板中自主获取的。
背景:
我们 ...

如果有临时可以规避此问题的方法也请告知下,十分感谢。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部