Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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
Javascript 在图纸上复制模板选项卡,其名称基于另一选项卡的范围_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 在图纸上复制模板选项卡,其名称基于另一选项卡的范围

Javascript 在图纸上复制模板选项卡,其名称基于另一选项卡的范围,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在使用一个代码创建基于另一个选项卡范围(“Generale”)的名称的选项卡。 生成的选项卡自然是空的。 如何从另一个名为“测试”的选项卡获取模板 脚本 function onOpen() { SpreadsheetApp.getUi().createMenu('My Menu') .addItem('Create New Tabs', 'createTabs') .addToUi()} function createTabs() { var

我正在使用一个代码创建基于另一个选项卡范围(“Generale”)的名称的选项卡。 生成的选项卡自然是空的。 如何从另一个名为“测试”的选项卡获取模板
脚本

function onOpen() {
    SpreadsheetApp.getUi().createMenu('My Menu')
        .addItem('Create New Tabs', 'createTabs')
        .addToUi()}

function createTabs() {
    var ss = SpreadsheetApp.getActive()
    ss.getSheetByName('Generale').getRange('G2:G').getValues().filter(String)
        .forEach(function (sn) {
            if (!ss.getSheetByName(sn[0])) {
                ss.insertSheet(sn[0], ss.getSheets().length);}})}

感谢您的帮助

方法中有一个
选项
参数,可用于指定模板电子表格

function createTabs() {
  var ss = SpreadsheetApp.getActive();
  var templateSheet = ss.getSheetByName('Template');
  ss.getSheetByName('Generale').getRange('G2:G').getValues().filter(String)
  .forEach(function (sn) {
    if (!ss.getSheetByName(sn[0])) {
      ss.insertSheet(sn[0], ss.getSheets().length, {template: templateSheet});
    }
  });
}

你能澄清一下“拿模板”是什么意思吗?这是否意味着您只想复制
Generale中列出的选项卡!G2:G
?如果是,您是否考虑过该方法?脚本将根据范围“G2:G”创建空选项卡,因此如果有5行,脚本将创建5个选项卡,但为空。如何根据测试选项卡的内容生成这5个选项卡?工作正常。完成此过程后,脚本还可以删除模板工作表?@Dito您可以使用此方法。在终止函数之前,请运行
ss.deleteSheet(templateSheet)