复制工作表并将副本重命名为单元格值

时间:2017-07-28 03:54:31

标签: google-apps-script

我需要使用电子表格,复制它(应该有两个单独的电子表格文件),然后使用原始电子表格中特定单元格的值重命名副本。

我在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);

}

这是我的问题:

上面的代码段会将原始电子表格的副本创建为原始(来源)电子表格中的新标签,并正确重命名标签。这不是我需要的。我需要复制原始(源)电子表格,而不是复制,以便原始(源)电子表格及其副本的副本是两个单独的文件,而不是原始(源)文件中的选项卡。

我需要这样的内容:右键单击,左键单击“制作副本”,将“副本...”表重命名为所需名称。

1 个答案:

答案 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);
}