找回密码
 立即注册

QQ登录

只需一步,快速开始

ycy0906

注册会员

6

主题

13

帖子

43

积分

注册会员

积分
43
ycy0906
注册会员   /  发表于:2021-2-8 19:26  /   查看:1860  /  回复:3
本帖最后由 ycy0906 于 2021-2-8 19:31 编辑

比如我给一个sheet设了默认的边框style:
  1. const defaultStyle = new GC.Spread.Sheets.Style();
  2. defaultStyle.borderLeft = new GC.Spread.Sheets.LineBorder('#000', GC.Spread.Sheets.LineStyle.thin);
  3. defaultStyle.borderRight = new GC.Spread.Sheets.LineBorder('#000', GC.Spread.Sheets.LineStyle.thin);
  4. defaultStyle.borderTop = new GC.Spread.Sheets.LineBorder('#000', GC.Spread.Sheets.LineStyle.thin);
  5. defaultStyle.borderBottom = new GC.Spread.Sheets.LineBorder('#000', GC.Spread.Sheets.LineStyle.thin);
  6. activeSheet.setDefaultStyle(defaultStyle);
复制代码
这个sheet上有个单元格(1,1),它本来没有任何style:
  1. activeSheet.getStyle(1, 1); // 结果是null
复制代码
这时候,我复制这个单元格(1, 1),粘贴到(1,2),再去看单元格(1,2)的style:
  1. activeSheet.getStyle(1, 2);
复制代码
结果是(1, 2)的style里包含了四条边的边框,就是我设的那个default style的值。
我希望,如果(1,1)自己没有style时,复制出来的单元格也没有style,即不包含default style的值;
如果(1, 1)自己有style,就复制(1,1)的style,也不要管default style的值。
应该怎么实现呢?





3 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-2-9 09:11:18
沙发
无论是否设置了default style,从一个单元格复制到另一个单元格都会带上上一个单元格的样式。您可以在一个空白的sheet页上实验一下。这是默认的复制粘贴行为。

如果您想不带样式可以用下面的代码,还有其他的粘贴选项您可以参考
https://demo.grapecity.com.cn/sp ... ipboardPasteOptions
sheet.options.clipBoardOptions = GC.Spread.Sheets.ClipboardPasteOptions.values;

值得注意的是上面这种方法是不带所有的样式的,无论是默认样式还是其他样式
回复 使用道具 举报
ycy0906
注册会员   /  发表于:2021-2-20 16:30:20
板凳
DerrickJiao 发表于 2021-2-9 09:11
无论是否设置了default style,从一个单元格复制到另一个单元格都会带上上一个单元格的样式。您可以在一个 ...

那有没有办法知道,粘贴的时候,被复制的源单元格是哪个呢?
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-2-20 17:23:45
地板
ycy0906 发表于 2021-2-20 16:30
那有没有办法知道,粘贴的时候,被复制的源单元格是哪个呢?

无法获取源单元格。只能用ClipboardPasted事件来获取粘贴的区域。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部