Javascript 为什么我的阵列用于发送电子邮件而不用于共享
我有一个适用于MailApp.SendEmail但不适用于AddViewer的电子邮件地址数组 有人能解释一下吗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
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]);
}))