我想将数据和原始工作表中的颜色一起从Google电子表格导入到另一个工作表中。
答案 0 :(得分:0)
建议的解决方案如下:
function onOpen() {
var destination = SpreadsheetApp.getActive(),
sheetName = 'Sheet1';
var previousCopy = destination.getSheetByName(sheetName);
if (previousCopy) previousCopy.setName('Dirty');
}
function getSheetCopy() {
var destination = SpreadsheetApp.getActive();
var dirty = destination.getSheetByName('Dirty');
Logger.log(dirty);
if (!dirty) return;
destination.deleteSheet(dirty);
// Replace sourceId by required identifier,
// and replace sheetName value as required
var sourceId = '1el850cyzxy4PrL2uDhN7Dr9vWNX3cGA5-ks1amAX-Ak',
sheetName = 'Sheet1';
var source = SpreadsheetApp.openById(sourceId);
source.getSheetByName(sheetName).copyTo(destination).setName(sheetName);
}
这个想法是每次我们打开目标(目标)电子表格时都要对源工作表进行完整复制(镜像)。 onOpen 触发器仅将先前的副本标记为“脏”。它的AuthMode受到限制,并且本身无法进行更新。
第一次,您应该将空的“ Sheet1”设为自动更新...
触发时间的 getSheetCopy 完成了主要工作,并一次删除了“脏”标记。触发时间为1分钟(最短)。因此,当打开电子表格时,您可以查看镜像的表是“脏的”(未更新)还是已经是实际的。