Google apps script 我可以使用脚本在Google Sheets中复制和重命名以当前数据作为选项卡名称的工作表吗?

Google apps script 我可以使用脚本在Google Sheets中复制和重命名以当前数据作为选项卡名称的工作表吗?,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一份每周更新的数据表。我想要一个脚本来复制工作表,并用当前日期重命名它。我们的目标是在每周更新之前将数据保存在工作表中,这样我就有了数据记录。 这是我到目前为止的脚本: /** @OnlyCurrentDoc */function myFunction() { let sh, temp_one_values; sh = SpreadsheetApp.getActive(); temp_one_values = transpose_(sh.getSheetByN

我有一份每周更新的数据表。我想要一个脚本来复制工作表,并用当前日期重命名它。我们的目标是在每周更新之前将数据保存在工作表中,这样我就有了数据记录。 这是我到目前为止的脚本:

    /** @OnlyCurrentDoc */function myFunction() {
    let sh, temp_one_values;
    sh = SpreadsheetApp.getActive();
    temp_one_values = transpose_(sh.getSheetByName('Complete Tutoring Roster').getRange('A1:Z1000').getValues());
        {temp_one.copyTo(sh).setName(szToday);
 
    }
}

function transpose_(array) {
    return Object.keys(array[0]).map(function (col) {
        return array.map(function (row) {
            return row[col];
        });
    });
}

function CopyDataSheet() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A1').activate();
  spreadsheet.duplicateActiveSheet();
  spreadsheet.getActiveSheet().setName('11/19/2020');
};
我使用录制宏来获取脚本

我知道我需要编辑
setName
代码。但我不知道如何对其编码以提取当前日期。

说明:
  • 您只需以所需格式获取今天的日期:
    MM/dd/yyyy

    const today = Utilities.formatDate(new Date(), spreadsheet.getSpreadsheetTimeZone(), "MM/dd/yyyy");
    
  • 然后使用该方法将工作表复制到现有电子表格中,然后用今天的日期命名:

    sheet.copyTo(spreadsheet).setName(today);
    
  • 您不需要激活范围或工作表。这是由宏生成的逻辑,但它会使代码混乱且效率低下。使用
    getSheetByName
    根据图纸名称获取所需图纸,而不是获取活动图纸

解决方案: 在此解决方案中,将
Sheet1
更改为要复制的工作表的名称

function CopyDataSheet() {
 const spreadsheet = SpreadsheetApp.getActive();
 const sheet = spreadsheet.getSheetByName('Sheet1'); 
 const today = Utilities.formatDate(new Date(), spreadsheet.getSpreadsheetTimeZone(), "MM/dd/yyyy");
 sheet.copyTo(spreadsheet).setName(today);
};

这是作为附加组件部署的吗?