【问题标题】:How to get email address from cell in Google Sheet / Google Script如何从 Google 表格/Google 脚本中的单元格获取电子邮件地址
【发布时间】:2022-11-24 21:34:30
【问题描述】:

这个脚本对我有用,但我需要从单元格中的值获取电子邮件。我的问题是如何用来自特定工作表单元格的电子邮件替换来自此脚本“example@mail.com”的电子邮件,例如“发票!A2”

function emailPDF() {
    let token = ScriptApp.getOAuthToken();
    let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    spreadsheet.getSheetByName("Invoice");
    let spreadsheetId = spreadsheet.getId();
    let sheetId = spreadsheet.getSheetByName("Invoice").getSheetId();
    let sheetUrl = "https://docs.google.com/spreadsheets/d/" + spreadsheetId + "/export?" + "format=xlsx" + "&gid=" + sheetId + "&portrait=true" + "&exportFormat=pdf";
    let request = UrlFetchApp.fetch(sheetUrl, {
        headers: {
            'Authorization': 'Bearer ' + token
        }
    });
    let content = request.getContent();
    let message = {
        to: "example@mail.com",
        subject: "Invoice",
        body: "Hello.",
        attachments: [{
            fileName: "Invoice.pdf",
            content: content,
            mimeType: "application/pdf"
        }]
    }
    MailApp.sendEmail(message);
    spreadsheet.getSheetByName("Invoice").activate();
}

【问题讨论】:

    标签: javascript


    【解决方案1】:

    我能够通过以下脚本完成它:

    请找到参考here以进一步说明

    function onOpen() 
        {
          var ui = SpreadsheetApp.getUi();
          ui.createMenu('GetValues')
              .addItem('get current', 'getCurrentCellValue')
              .addItem('get by row col', 'getByRowAndColumn')
              .addItem('get by address a1', 'getByCellAddressA1Notation')
              .addToUi();
        }
        
        function getCurrentCellValue()
        {
          var cell = SpreadsheetApp.getActiveSheet().getActiveCell();
          var a1 = cell.getA1Notation();
          var val = cell.getValue();
          
          SpreadsheetApp.getUi().alert("The active cell "+a1+" value is "+val);
        }
        
        function getByRowAndColumn()
        {
          var ui = SpreadsheetApp.getUi();
          
          var response = ui.prompt(
              'Cell address',
            'Please enter the cell address in this format: row,col for example, 5,2 means row 5 col 2',
              ui.ButtonSet.OK);
          
          var resp_text = response.getResponseText();
          
          var match = resp_text.match(/^(d+),(d+)/);
          
          
          var row = parseInt(match[1]);
          var col = parseInt(match[2]);
          var value = SpreadsheetApp.getActiveSheet().getRange(row,col).getValue();
        
          
          SpreadsheetApp.getUi().alert("The value is "+value);
        }
        
        function getByCellAddressA1Notation()
        {
          var ui = SpreadsheetApp.getUi();
          
          var response = ui.prompt(
              'Cell address',
              'Please enter the cell address (A1 notation)',
              ui.ButtonSet.OK);
          
          var a1 = response.getResponseText();
          
          var value = SpreadsheetApp.getActiveSheet().getRange(a1).getValue();
          
          ui.alert("cell value "+value);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 2015-03-10
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      相关资源
      最近更新 更多