找回密码
 立即注册

QQ登录

只需一步,快速开始

Clark.Pan 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-12-31 15:17  /   查看:2639  /  回复:0
copyTo 方法用于将数据从一个区域复制到另一个区域,并且提供了 CopyToOptions 复制选项用于进行差异化的内容复制。举个例子,如下面的代码设置
  1. activeSheet.copyTo(0,0,1,1,2,2,GC.Spread.Sheets.CopyToOptions.value);
复制代码
CopyToOptions设置的内容是GC.Spread.Sheets.CopyToOptions.value,这代表这只会将区域内容的value复制另一个指定区域。诸如此类的设置我们还有:

valuenumber1
表示数据类型为纯数据
formulanumber2
表示数据类型为公式
commentnumber4
表示数据类型为批注
outlinenumber8
表示复制区域分组
sparklinenumber16
表示数据类型为迷你图
spannumber32
表示复制单元格合并
stylenumber64
表示数据类型为样式
tagnumber128
表示数据类型为标签
bindingPathnumber256
表示数据类型是绑定路径
conditionalFormatnumber512
表示数据类型为条件格式
hyperlinknumber1024
表示数据类型为超链接
allnumber2047
表示所有类型的数据

通过上面的设置我们可以有效的将数据内容按种类进行剥离复制粘贴。
同时,也会有小伙伴们会说,我同时想要复制其中的多项,但又不是全部,那该怎么办呢?
这里要将一下独特的设计理念,从上面图中,可以看到每一项枚举的值都是一个二进制数,例如value是1,是2的零次方。formula是2,是2的一次方。这样的设计有什么独特的地方呢,因为上述枚举值的结果都是一个二进制数,就可以用按位或的逻辑产生合并结果。例如:
GC.Spread.Sheets.CopyToOptions.value|GC.Spread.Sheets.CopyToOptions.formula的结果就是3,3代表了既复制value又复制formula。上述结果可以任意项进行组合结果不会重复。运行逻辑中会根据组合的结果按二进制进行解析来分析用户选取的功能是哪些。
所以,例如我想要从一片区域的复杂数据中只复制值value,公式formula,样式style。我就可以使用下面的代码来完成:
  1. activeSheet.copyTo(fromRow, fromColumn, toRow, toColumn, rowCount, columnCount,GC.Spread.Sheets.CopyToOptions.value|GC.Spread.Sheets.CopyToOptions.formula|GC.Spread.Sheets.CopyToOptions.style);
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部