Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 根据日期将工作表从模板复制到新工作簿_Google Apps Script_Google Sheets_Copy_Rename_Google Workspace - Fatal编程技术网

Google apps script 根据日期将工作表从模板复制到新工作簿

Google apps script 根据日期将工作表从模板复制到新工作簿,google-apps-script,google-sheets,copy,rename,google-workspace,Google Apps Script,Google Sheets,Copy,Rename,Google Workspace,我想将工作簿中的模板表复制到尚未创建的新工作簿中。我希望在每个月29日运行此程序,并执行以下操作: 以电子表格名称“Template”和表格名称“Template..2020”为例 例如,创建一个名为“December 2020”的新电子表格,并将第一个选项卡重命名为12.01.20,然后我可以在每月的每一天复制和重命名该选项卡 我尝试了一些带有时间触发器的复制函数,但它们要求已打开一个空白工作簿。示例脚本 这个剧本 函数createSheetFromTemplate 使用获取有关今天日

我想将工作簿中的模板表复制到尚未创建的新工作簿中。我希望在每个月29日运行此程序,并执行以下操作:

  • 以电子表格名称“Template”和表格名称“Template..2020”为例
  • 例如,创建一个名为“December 2020”的新电子表格,并将第一个选项卡重命名为12.01.20,然后我可以在每月的每一天复制和重命名该选项卡
我尝试了一些带有时间触发器的复制函数,但它们要求已打开一个空白工作簿。

示例脚本 这个剧本

  • 函数
    createSheetFromTemplate
    • 使用获取有关今天日期的信息,并提取年、月、日等
    • 使用从另一个工作表获取模板
    • 根据今天日期的信息创建新工作表
    • 复制模板工作表并根据日期重命名它
  • 函数
    createTrigger
    • 使用,创建一个在每月29日运行的触发器
免责声明:目前,此脚本仅创建一个包含今天月份的新电子表格和一个包含今天日期的新工作表。我知道您可能希望为下个月创建一张工作表。另一个问题可能最适合解决这个问题——也许是看

函数createSheetFromTemplate(){
//获取今天日期的详细信息
let date=新日期()
let year=date.getFullYear()
let month=date.getMonth()+1
让monthName=date.toLocaleString('default',{month:'long'});
let day=date.getDate()
console.log(年、月、日)
//获取基于年份的模板
让templateSpread=SpreadsheetApp.openById(“1H7GBVxK4f0nmYR5xfZawy6nreDTCZaj76-dKE9eOtUE”)
let templateSheet=templateSpread.getSheetByName(“模板”+年份)
//使用重命名的模板创建新的电子表格
让newSpread=SpreadsheetApp.create(monthName+“”+year)
让newSheet=templateSheet.copyTo(newSpread).setName(year.toString().substring(2,4)+“+月+”+日)
let sheetToDelete=newSpread.getSheetByName(“Sheet1”)
newSpread.deleteSheet(sheetToDelete)
}
//创建每月29日运行的触发器。
函数createTrigger(){
ScriptApp.newTrigger('createSheetFromTemplate')
.基于时间的()
星期一(29)
.create();
}
工具书类

请分享您当前的代码如果您需要帮助编写脚本,那么这里可能是您的最佳选择。[谷歌应用程序脚本社区](