【问题标题】:Series of Basic Google Sheet functions combined一系列基本的 Google Sheet 功能组合
【发布时间】:2019-09-15 00:11:02
【问题描述】:

所以我是 Google 表格的新手。我正在使用表格为一家小公司制作检查报告。我想在工作表底部添加一个按钮,该按钮执行以下脚本:

  1. 复制原始表格

  2. 将工作表重命名为单元格值 + 今天的日期。即 Fred01011980

  3. 将工作表以 PDF 格式通过电子邮件发送给收件人。

  4. 最后清除原主模板表中输入的值。

我已经查找了如何做这些,其中一些很简单,但我不知道如何组合它们。我可以将所有函数单独添加在一起而不需要任何额外的语法吗?对此的任何帮助将不胜感激。谢谢你。

【问题讨论】:

    标签: google-sheets google-sheets-api google-sheets-formula


    【解决方案1】:

    我相信您可以创建另一个调用您的函数的函数,如下所示:

    function doAllStuff() {
      doStuff();
      doMoreStuff();
    }
    

    【讨论】:

      【解决方案2】:

      我是这样做的:

      function AllinOne() {
        var ss = SpreadsheetApp.getActiveSpreadsheet();
        var name = "Inspection";
        var sheet = ss.getSheetByName("Inspection").copyTo(ss);
        var newname = ss.getSheetByName("Inspection").getRange(2, 2).getValue();
        var newnamedate = ss.getSheetByName("Inspection").getRange(3, 2).getValue();
        var sheetx = ss.getActiveSheet()
        var thisSheet = sheetx.getName();
        var actualSheetName = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName()
        var sheetfinal = ss.getSheetByName("Inspection")
      
      
      
        var old = ss.getSheetByName(newname+newnamedate);
        if (old) ss.deleteSheet(old); 
        sheet.setName(newname+newnamedate); //copies the sheet and renames it to "store+date"
        ss.setActiveSheet(sheet)
      
      // below is pdf conversion
       var originalSpreadsheet = SpreadsheetApp.getActive();
      
      var sourcesheet = originalSpreadsheet.getActiveSheet();
      var sourcerange = sourcesheet.getRange('A1:B176');  // range to get - here I get all of columns which i want
      var sourcevalues = sourcerange.getValues();
      var data = sourcesheet.getDataRange().getValues();
      
      var newSpreadsheet = SpreadsheetApp.create(thisSheet); // can give any name.
      var sheetnow = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      var projectname = SpreadsheetApp.getActiveSpreadsheet();
      var sheetz = sourcesheet.copyTo(newSpreadsheet);
      var destrange = sheetz.getRange('A1:B176');
      destrange.setValues(sourcevalues);
      newSpreadsheet.getSheetByName('Sheet1').activate();
      newSpreadsheet.deleteActiveSheet();
      
      var pdf = DriveApp.getFileById(newSpreadsheet.getId());
      var theBlob = pdf.getBlob().getAs('application/pdf').setName(newname+newnamedate);
      
      var folderID = "File_ID"; // Folder id to save in a folder.
      var folder = DriveApp.getFolderById(folderID);
      var newFile = folder.createFile(theBlob);
      
      DriveApp.getFileById(newSpreadsheet.getId()).setTrashed(true);  
      
        MailApp.sendEmail("Email","New Manager Inspection: "+newname+newnamedate, "A new Manager Inspection Report has been added to the Drive.");
      
        ss.getSheetByName(name).getRangeList(["B176","B150:B164","B138:B146","B129:B134","B119:B125","B106:B115","B99:B102","B84:B95","B78:B80","B66:B74","B55:B62","B48:B51","B34:B44","B25:B30","B18:B21","B10:B14","B4:B7","B2","B16","B23","B32","B46","B53","B53","B64","B76","B82","B97","B104","B117","B127","B136","B148","B166"]).clearContent();
        ss.setActiveSheet(sheetfinal);
      
        SpreadsheetApp.getUi().alert("Report Submitted, Please do NOT Resubmit. Thank You");
      
      
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-26
        • 1970-01-01
        相关资源
        最近更新 更多