Fiooona 发表于 2020-1-22 14:49:03

复制粘贴常见问题

本帖最后由 Lynn.Dou 于 2021-6-7 17:19 编辑

一 、Excel 与 SpreadJS 之间的复制粘贴
    1 如何复制粘贴的时候不带样式?(默认是带样式)
       设置属性 workbook.options.allowCopyPasteExcelStyle = false;
      2 从Excel 中选择了20行数据复制,粘贴时SpreadJS中只有10行,如何自动扩展行?
      设置属性workbook.options.allowExtendPasteRange = true;// 默认值是false
    3 右键复制粘贴失效?
       右键粘贴走的是SpreadJS内部剪贴板,因为作为纯前端JS实现的控件,无法直接访问操作系统的剪贴板,这是JS语言的性质决定的。
       外部复制的内容,可以用Ctrl + V 粘贴,这个快捷键调用的就是系统事件,是浏览器去获取系统剪贴板的内容。
二、SpreadJS 内部的复制粘贴
    1 如何复制粘贴时只复制值?
         设置activeSheet.options.clipBoardOptions = GC.Spread.Sheets.ClipboardPasteOptions.values;

         API 文档    
         ClipboardPasteOptions(V13版本) 这个属性可取值包含:all、formatting、formulas、formulasAndFormatting、values、valuesAndFormatting;
       2 右键复制粘贴失效?      
         跨workbook (用两个浏览器窗口打开SpreadJS),右键复制粘贴无法使用,由于目前无法通过JS去访问浏览器的剪贴板。可以通过Ctrl+C、Ctrl+V来完成。
    3 不同的Workbook中为什么无法复制粘贴整行?   
       复制粘贴整行的时候包括了行头的信息,例如全选第二行,有内容aa,bb,cc, 复制到剪贴板的信息是:2,aa,bb,cc,粘贴的时候由于列数不相等,会导致无法粘贴。
       避免这个问题可以设置:spread.options.copyPasteHeaderOptions = GC.Spread.Sheets.CopyPasteHeaderOptions.noHeaders;
三、禁用ctrl+c、ctrl+v
windows系统:
spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.c, true, false, false, false);
spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.v, true, false, false, false);mac系统:
spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.c, true, false, false, false);
    spread.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.v, true, false, false, false);注意,SpreadJS无法控制浏览器剪贴板的行为,所以以上禁用只在SJS内部有效,仍能复制粘贴到SJS外部。






zhaijunbao 发表于 2021-8-25 14:02:29

请问可以禁止右键的复制粘贴吗

Lynn.Dou 发表于 2021-8-25 15:25:51

您好,您指的是组件版设计器还是SpreadJS呢?
为便于后续沟通,请在求助中心版块发新帖,详细描述下您的问题。

Farley 发表于 2021-12-25 19:57:33

请问下遇到无法复制单元格里部分内容,应如何处理

Derrick.Jiao 发表于 2021-12-27 09:27:43

本帖最后由 Derrick.Jiao 于 2021-12-27 09:28 编辑

Farley 发表于 2021-12-25 19:57
请问下遇到无法复制单元格里部分内容,应如何处理
你好,这边看到你已经发了一个新帖,请移步至该链接交流https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=138916
页: [1]
查看完整版本: 复制粘贴常见问题