我是谷歌应用程序脚本的新手。我需要帮助创建新的电子表格,使用现有的电子表格,并使用谷歌应用程序脚本将数据复制并分类到新创建的电子表格中。谁能帮我?
这样做的诀窍:
function copySpreadSheet(newSpreadSheetName) {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var data = sheet.getSheetValues(1, 1, 1000, 26);
var newSheet = SpreadsheetApp.create(newSpreadSheetName)
newSheet.getSheetByName("Sheet1")
.getRange(1,1,1000,26).setValues(data);
}
function main() {
copySpreadSheet("some_Spreadsheet");
}
执行main后,您可以在驱动器文件列表中找到新的电子表格。如果要更改应复制的数据范围,请调整getSheetValues()方法,如下所示:getSheetValues(startRow,startColumn,numRows,numColumns)。不要忘记对getRange方法执行相同的操作,否则会出现错误。
您可以使用这个更简单的代码:
function copySpreadSheet() {
var s = SpreadsheetApp.openById("id");
var destination = DriveApp.getFolderById("idOfFolder");
DriveApp.getFileById("id_ofFile").makeCopy("New name", destination);
}
这将在新目标中创建文件的副本。
SpreadsheetApp#spreadsheet类有一个方法copy:
var wb = SpreadsheetApp.getActiveSpreadsheet();
var new = wb.copy("Copy of " + wb.getName());
此copy
方法复制当前电子表格并返回对新电子表格的引用,因此可以执行其他任务(例如删除不需要的工作表,格式化范围,添加其他值等)。