我需要使用电子表格,复制它(应该有两个单独的电子表格文件),然后使用原始电子表格中特定单元格的值重命名副本。
我在Google的文档中进行了一些研究,然后查看了stackoverflow。我略微修改了我在“Google script to copy and rename a sheet and name is based on a cell reference”
中找到的内容function CreateNewTimesheet() {
// The code below makes a duplicate of the active sheet
var ss = SpreadsheetApp.getActiveSpreadsheet()
SpreadsheetApp.getActiveSpreadsheet().duplicateActiveSheet();
// The code below will rename the active sheet to a date based on cell O49 of the source spreadsheet
var myValue = SpreadsheetApp.getActiveSheet( ).getRange("O49").getDisplayValue();
SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(myValue);
}
这是我的问题:
上面的代码段会将原始电子表格的副本创建为原始(来源)电子表格中的新标签,并正确重命名标签。这不是我需要的。我需要复制原始(源)电子表格,而不是复制,以便原始(源)电子表格及其副本的副本是两个单独的文件,而不是原始(源)文件中的选项卡。
我需要这样的内容:右键单击,左键单击“制作副本”,将“副本...”表重命名为所需名称。
答案 0 :(得分:3)
参考以下代码......
function createCopy() {
var myValue = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("O49").getValue();
var copiedSpreadSheet = SpreadsheetApp.getActiveSpreadsheet().copy(myValue);
}
编辑:创建电子表格的副本并将其放入特定的驱动器文件夹
function createCopy() {
var myValue = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("O49").getValue();
var destinationFolder = DriveApp.getFolderById("<<Drive Folder ID>>");
DriveApp.getFileById(SpreadsheetApp.getActiveSpreadsheet().getId()).makeCopy(myValue,destinationFolder);
}