本帖最后由 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外部。
|
|