Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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,我有一个适用于MailApp.SendEmail但不适用于AddViewer的电子邮件地址数组 有人能解释一下吗 function exportSpreadsheet() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var filename = "Copy" + ss.getName(); var sheetCopy = ss.copy(filename); sheetCopy.addViewers(emailTo) v

我有一个适用于MailApp.SendEmail但不适用于AddViewer的电子邮件地址数组

有人能解释一下吗

function exportSpreadsheet() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var filename = "Copy" + ss.getName();
  var sheetCopy = ss.copy(filename);
  sheetCopy.addViewers(emailTo)
  var message = "yyyyyyyyyyyyyyyyyyy";  
  var subject = "xxxx"    
  var contacts = ss.getSheetByName("Contacts");
  var numRows = contacts.getLastRow();
  var emailTo = contacts.getRange(2, 2, numRows, 1).getValues();
  MailApp.sendEmail(emailTo, subject, message);
}

整个脚本将文件附加到电子邮件中,但我已经删除了它,因为我认为它不会影响任何内容


emailTo数组位于工作表“Contacts”B2:B上,所有联系人都在接收电子邮件,但我找不到一种方法使addViewer可以工作

问题在于
emailTo
变量在调用后声明为

将以下代码行移动到
var emailTo=contacts.getRange(2,2,numRows,1).getValues()之后

问题: 接受
String[]
(一维字符串数组)作为参数,而
Range\getValues()
返回
Object[][]
(二维对象数组)

解决方案:
  • 将二维阵列转换为一维阵列
  • 将对象转换为字符串类型
片段:
emailTo
的确切值是多少?请添加一个。除了Ruben:)之外,很抱歉,这仍然是无效的电子邮件。我也移动了电子邮件的地址declared@Tom编辑您的问题以反映最新代码或提出新问题。@问题代码的另一个问题是
contacts.getRange(2,2,numRows,1).getValues()
。一种解决方法是
contacts.getRange(2,2,numRows-1,1).getValues()
var sheetCopy = ss.copy(filename);
sheetCopy.addViewers(emailTo)
sheetCopy.addViewers(emailTo.map(function(row){
  return String(row[0]);
}))