将数据范围从一个电子表格复制到另一个电子表格会从目标中删除数据

时间:2015-09-16 05:19:32

标签: google-apps-script google-apps google-spreadsheet-api

最终目标是每10-15分钟成功地将一系列单元格从一个电子表格复制到另一个电子表格。这些单元格通过Drive API由外部脚本填充。

问题是当脚本运行时,它只删除目标范围内的所有数据,这对我来说没有意义!!

function ExportHourlyCitizenData() {
  var ssSource = SpreadsheetApp.openById("1kDupxE8csxYibYz-cfzkhzehwzTQGjFXOlCU3bJNUIg");
  var sheet = ssSource.getSheetByName("Hourly Citizen Capture");
  var ssDest = SpreadsheetApp.openById("1tMAP0fg-AKScI3S3VjrDW3OaLO4zgBA1RSYoQOQoNSI");
  var sheetDest = ssDest.getSheetByName("Hourly Citizen Capture");
  // Grabs the source range, some of the grabbed cells are empty..
  var rangeSource = ssSource.getRange("B70:Z168");
  var dataSource = rangeSource.getValues();
  // sets the destination cells.
  sheetDest.getRange("B85:Z183").setValues(dataSource);
}; 

所以这个想法非常简单,但我在这里弄乱了一些东西。我正在移动一组体积相当大的数据,所以也许有一种更有效的方法呢?

编辑:我尝试使用importrange,但问题是当我通过驱动器api将数据推送到电子表格时它没有更新,这是一个重大问题。

1 个答案:

答案 0 :(得分:0)

这可能是个问题:

var rangeSource = ssSource.getRange("B70:Z168");

使用源数据表变量sheet代替电子表格变量ssSource