我正在尝试使用(时间驱动的)Google App脚本制作一份电子表格的副本。我在这里发现了一段非常有用的代码,但我担心的是范围经常变化(添加新行)。无论范围如何变化,我如何复制整个电子表格?因为您可以在下面的代码中看到我已经定义了范围,但是当这个更改时,将丢弃超出定义范围的信息。我能做什么? 提前致谢。
这里是我正在使用的代码:
function saveAsSpreadsheet(){
var timestamp = new Date();
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var range = sheet.getRange('sheetName!A1:AO158');
sheet.setNamedRange('sheetName', range);
var TestRange = sheet.getRangeByName('sheetName').getValues();
Logger.log(TestRange);
var destFolder = DriveApp.getFolderById("folderID");
DriveApp.getFileById(sheet.getId()).makeCopy("FileName:"+ timestamp, destFolder);
}
答案 0 :(得分:0)
如果您需要获取由A列的第一个单元格定义的范围对象以及A列中包含数据的最后一个单元格,请使用以下代码:
var range = sheet.getRange(1, 1, sheet.getLastRow(), 1);
getRange()方法有几个重载,并且可以接受定义范围边界的数值。更多相关信息https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer)
如果您需要复制所有内容,请使用getDataRange()方法。