首先,我知道一点Javascript,但我不知道我会从哪里开始。我做了很多搜索,但没有找到任何接近我想要的东西。我在谷歌表格中有一个每日任务列表,我想在右键单击并选择复制时复制每张表格的下一天日期。这可能吗?可以用另一种方式完成吗?
无法更改上下文菜单的"重复"项的作用。但是可以使用以下脚本通过菜单提供另一种复制方式。每次打开电子表格时,它都会添加一个新菜单项"自定义>新的一天"。调用此项将复制当前工作表,并将递增的日期作为名称,前提是该名称遵循 ISO 格式 yyyy-mm-dd。
一般参考:从Google Apps Script开始。
function duplicate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var sheetDate = new Date(sheet.getName() + 'T00:00:00.000Z');
if (!sheetDate.valueOf()) {
Browser.msgBox('Did not recognize "' + sheet.getName() + '" as a date. Use the format yyyy-mm-dd.');
}
else {
sheetDate.setDate(sheetDate.getDate() + 1);
var newSheetName = sheetDate.toISOString().slice(0,10);
ss.insertSheet(newSheetName, {template: sheet});
}
}
function onOpen() {
SpreadsheetApp.getActiveSpreadsheet().addMenu("Custom", [{name: "New Day", functionName: "duplicate"}]);
}
带有+ 'T00:00:00.000Z'
位之所以存在,是因为Google Apps Script中日期解析的实现很特殊:它需要时间部分,包括毫秒。