我是新的谷歌应用程序脚本。我需要帮助创建新的电子表格使用现有的电子表格和复制和排序数据到新创建的电子表格使用谷歌应用程序脚本。有人能帮我吗?
效果很好:
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)。不要忘记对下面几行gerange方法做同样的事情,否则您将得到一个错误。
您可以使用以下更简单的代码:
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
方法复制当前电子表格并返回对新电子表格的引用,因此可以执行其他任务(例如删除不需要的工作表,格式化范围,添加附加值等)。