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);
};
这是作为附加组件部署的吗?