将工作表复制到新的电子表格,将单元格值添加到新电子表格名称的末尾
Copy sheet to new spreadsheet, Add cell value to end of new spreadsheet name
现在创建副本并将文本添加到文件名的末尾。新文件与原始文件位于同一目录中。我似乎无法将新文件移到"时间表存档"文件夹中。似乎我应该能够指定新文件的位置?
var range = sheet.getRange(2,7);
var data = range.getValue();
var SSID = '1S3Vj5lYOchh0OJ5ZCamsoMCKtcTHeFd72nyxPHJYofk'
var CopyDate = Utilities.formatDate(data , "GMT-8", "yy_MM_dd");
var folder = DriveApp.getFoldersByName('Timesheet Archive');
var id = DriveApp.getFileById(SSID)
id.makeCopy(SpreadsheetApp.openById(SSID).getName() + "_" + CopyDate);
我将转到谷歌的新表单,并且在这个功能上遇到了问题,这个功能在移动之前运行良好:
function exportData() {
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Timesheet");
var sourceData = sourceSheet.getDataRange().getValues();
sourceData.splice(0,1); // Remove header
var targetSS = SpreadsheetApp.openById("1ZKQw9WnAFmJfC6GP_CYmSbQK_820zIR6oQGnLMc1yBM").getSheetByName("Master Time Sheet");
var targetRangeTop = targetSS.getLastRow(); // Get # rows currently in target
targetSS.getRange(targetRangeTop+1,1,sourceData.length,sourceData[0].length).setValues(sourceData);
var sheet = SpreadsheetApp.getActive().getSheetByName('Timesheet');
var ss = SpreadsheetApp.getActiveSpreadsheet();
var name = ss.getName(); // Not necessary
var sheet = ss.getSheetByName('Timesheet'); // or whatever is the name of the sheet
var range = sheet.getRange(2,7);
var data = range.getValue();
var SSID = '1S3Vj5lYOchh0OJ5ZCamsoMCKtcTHeFd72nyxPHJYofk'
var CopyDate = Utilities.formatDate(data , "GMT-8", "yy_MM_dd"); // Function Date + Format
var folder = DocsList.getFolder('Timesheet Archive'); //Use this line if you want to get the folder by name
var backup = DocsList.getFileById(SSID).makeCopy(SpreadsheetApp.openById(SSID).getName() + "_" + CopyDate);
backup.addToFolder(folder); //This line will move the file
backup.removeFromFolder(DocsList.getRootFolder()); //This line is needed to remove the File from the Root
}
第一部分将工作表的一部分复制到另一个现有的电子表格中,该部分功能正常工作。第二部分复制整个工作表,使用复制的工作表名称和数据创建一个新文件,并使用位于源工作表上的单元格中的文本(日期)附加文件名的末尾。它应该先将其移动到根文件夹,然后再移动到另一个名为"时间表档案"的文件夹。
我没有收到任何错误,该文件既没有出现在根文件夹中,也没有出现在"时间表存档"文件夹中。
您正在使用:
DriveApp.getFoldersByName('Timesheet Archive');
这得到了一个";文件夹迭代器";
您需要使用:
getFolderById(id)
或者遍历文件夹,(即使可能只有一个!)
while (folders.hasNext()) {
var folder = folders.next();
if (folder === 'Timesheet Archive') {
//Make copy here
};
}
文件类没有addToFolder()
方法。backup
是一个文件。makeCopy()
方法有一个destination
选项。您可以同时创建备份并将其放入目标。
https://developers.google.com/apps-script/reference/drive/file#makeCopy(字符串,文件夹)
使用folder
变量,即文件夹类型作为目标。
相关文章:
- Google电子表格getValue([cell containing ])不返回制表符
- 区分电子表格中的空单元格和0值
- 使用外部数据创建仪表板(谷歌电子表格)-JavaScript
- 如何使用Google Sheets API+Javascript阅读电子表格
- 谷歌电子表格的自定义xml解析功能
- SIMPLE Javascript代码,用于显示谷歌电子表格中单个字段的数据
- php&js-将电子邮件添加到输入文本中
- 在谷歌电子表格中循环单元格
- 如果填写了特定值,则通过电子邮件发送电子表格中的数据
- 使用AngularJS制作一个类似电子表格的应用程序
- 有没有一种方法可以使用Javascript检索谷歌表单ITSELF(而不是电子表格)的数据
- 使用谷歌应用程序脚本制作基于谷歌电子表格的带有列表框的网络应用程序
- 使用公共API访问(无OAuth)从JavaScript编写Google电子表格
- 将工作表复制到新的电子表格,将单元格值添加到新电子表格名称的末尾
- 从谷歌电子表格中向谷歌日历添加快速添加事件
- 将“加载更多”添加到从Google电子表格中通过$.getJSON接收的数据输出中
- 防止从电子表格添加到日历时出现重复事件
- 更新/添加数据到谷歌电子表格数据库
- 在文件夹中添加电子表格文件
- Google Apps脚本-使用侧边栏表单向电子表格添加一行