在Google电子表格中导入数据以及颜色

时间:2019-01-11 13:58:05

标签: google-sheets

我想将数据和原始工作表中的颜色一起从Google电子表格导入到另一个工作表中。

1 个答案:

答案 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分钟(最短)。因此,当打开电子表格时,您可以查看镜像的表是“脏的”(未更新)还是已经是实际的。