使用Google Sheets Apps脚本创建已发送数据的日志标签

问题描述 投票:0回答:1

我正在使用Google Apps脚本和Twilio SMS服务在Google表格中创建短信发送服务。我已经能够成功创建该服务,但是现在我希望在其他选项卡中添加“已发送日志”,这样我就可以查看电话号码的历史列表,其邮件发送的日期和状态以及该文本附带的消息正文。

电话号码,日期和状态以及邮件正文已经存在于工作表中。但是,消息正文与其他两个值不同,因为它对所有消息都相同,并且不会像其他行那样在每一行上重复。在尝试将信息复制到另一张纸并为发送的每条消息在日志中添加新行的过程中,我只能复制收件人电话号码和status + date列。我想使用脚本生成一个包含所有3个日志-电话号码,状态+日期和消息正文。

Google表格-https://docs.google.com/spreadsheets/d/1Ni3Wj8MLH6Advcie5Wbu9A5sSj52OY5UV2dgqLU5MSk/edit?usp=sharing

我的收件人电话号码,发送的状态和日期以及邮件正文均在标签为“发送列表”的选项卡中。预先感谢。

function AddRowsToLog(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getSheetByName('Sending List');
  var outputSheet = ss.getSheetByName('Log');
  var msg = ss.getSheetByName('Sending List').getRange('E1').getValues();
  var dataRows = dataSheet.getLastRow() - 1;
  var dataValues = dataSheet.getRange(2,1,dataRows,2).getValues(); 
//How do I choose the content without selecting it and still have it be dynamic so that even if
//I have a different number of recipients each time, the number of rows logged match up?
 
  for (var i = 0; i < dataRows; i++) {
   Logger.log([dataValues[i],msg]);
   outputSheet.appendRow([dataValues[i],msg]);   
  }
}
google-apps-script google-sheets appscript
1个回答
0
投票

尝试一下:

function AddRowsToLog(){
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet=ss.getSheetByName('Sending List');
  var outputSheet = ss.getSheetByName('Log');
  var msg = dataSheet.getRange('E1').getValue();
  var dataValues = dataSheet.getRange(2,1,dataSheet.getLastRow()-1,2).getValues(); 
  for(var i=1;i<dataValues.length;i++) {
    dataValues[i].splice(dataValues.length,0,msg);//splice msg into output array
    outputSheet.appendRow([dataValues[i]);   
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.