我有以下脚本,当运行结束时,我想将该电子表格的副本复制到具有名称 + 日期的特定文件夹中,例如:
我有一个名为“Audit”的电子表格,当最后运行一些特定的脚本时,我想将电子表格的副本复制到文件夹 root/Audit/Historic 到谷歌驱动程序或谷歌文档中。
注意:root 是 google 驱动程序或 google docs 顶级文件夹。
脚本:
function ShellCopyValues(){
var sheets = ['sheet1','sheet2','sheet3','sheet4','sheet4'];
for (var s in sheets){
CopyRows(sheets[s]);
}
}
function CopyRows(uname) {
var source = SpreadsheetApp.openById('XXXXXX');
var sourcesheet = source.getSheetByName(uname);
var target = SpreadsheetApp.openById('YYYYYY');
var targetsheet = target.getSheetByName(uname);
var targetrange = targetsheet.getRange(2, 1, sourcesheet.getLastRow(), sourcesheet.getLastColumn());
var rangeValues = sourcesheet.getRange(2, 1, sourcesheet.getLastRow(), sourcesheet.getLastColumn()).getValues();
targetrange.setValues(rangeValues);
}
在这个脚本的结尾,我想复制一份。
如果有人对我该怎么做有任何想法,我将不胜感激。
编辑:2013 年 8 月 7 日(固定)
- 该脚本将使用这种格式(文件名+日期)进行复制
该脚本会将文件保存到一个文件夹中。(不会出现在根目录“我的驱动程序”中)
//This part make a copy of the spreadsheet var SSID = 'XXXXXX' var CopyDate = Utilities.formatDate(new Date(), "GMT-3", "ddMMyyyyHHmm"); // Function Date + Format var folder = DocsList.getFolder('Historic'); //Use this line if you want to get the folder by name //--> var folder = DocsList.getFileById('YYYYY'); //Use this line if you want to get the folder by ID var backup = DocsList.getFileById(SSID).makeCopy(SpreadsheetApp.openById(SSID).getName() + "_" + CopyDate); backup.addToFolder(folder); //This line will be move the folder backup.removeFromFolder(DocsList.getRootFolder()); //This line is needed to remove the Filde from the Root