CopyTo CopyToOptions详解
copyTo 方法用于将数据从一个区域复制到另一个区域,并且提供了 CopyToOptions 复制选项用于进行差异化的内容复制。举个例子,如下面的代码设置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。我就可以使用下面的代码来完成:
activeSheet.copyTo(fromRow, fromColumn, toRow, toColumn, rowCount, columnCount,GC.Spread.Sheets.CopyToOptions.value|GC.Spread.Sheets.CopyToOptions.formula|GC.Spread.Sheets.CopyToOptions.style);
页:
[1]