如何在谷歌电子表格中获取带有另一张工作表文本的彩色单元格?
嗨,我有 2 张纸,我正在尝试将带有文本的彩色单元格从工作表 1 获取到工作表 2。
请问有人可以帮我吗?
例:
在工作表 1 中,我将数据放在第 1 列第 1 行中,然后对其进行着色 同时,它将出现在工作表 2 第 1 列第 1 行中。
复制所有内容
如果要复制所有内容,包括Range
值,颜色,背景颜色等 - 请使用简单的copyTo()
方法。请记住,Range
维度应该相等(ofc,您可以随时添加处理来说明这一点)。
/**
* Copies all;
* @param {Range} source copy from range;
* @param {Range} target copy to range;
*/
function copyAll(source,target) {
source.copyTo(target);
}
条件复制
如果你只想复制Range
的特定属性,上面提到的copyTo()
方法可以用CopyPasteType
枚举调用,像这样(请注意,由于与双参数调用copyTo(range,options)
冲突,转置 arg 是必要的 - 如果你不希望方向改变,你可以在函数中对其进行硬编码):
/**
* Copies only specific props;
* @param {Range} source copy from range;
* @param {Range} target copy to range;
* @param {String} type enum CopyPasteType;
* @param {Boolean} transposed change orientation or not;
*/
function copyConditional(source,target,type,transposed) {
var t = SpreadsheetApp.CopyPasteType[type];
source.copyTo(target,t,transposed); //if transpose is not specified, will be treated as copyTo(destination,options)!;
}
通过吸气剂和二传器复制
例如,分别使用getBackgrounds()
和setBackgrounds()
(还有很多其他的 getter-setter 方法可以单独使用而不是copyTo()
,请参阅有用链接中的Range
参考)。
/**
* Copies background color;
* @param {Range} source copy from range;
* @param {Range} target copy to range;
*/
function copyColor(source,target) {
var color = source.getBackgrounds();
target.setBackgrounds(color);
}
有用的链接
copyTo()
参考;CopyPasteType
枚举引用;Range
类参考;