抱歉,标题含糊。我真的是编程新手,我在这里有以下代码:
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Confirm Order')
.addItem('Send Email', 'email')
.addToUi();
}
function email() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var currentRow = sheet.getActiveRange().getRow();
var product = sheet.getRange(2,5,1,11).getValues(); //header names
var order1 = sheet.getRange(currentRow, 5, 1,11).getValues();
var order2 = sheet.getRange(currentRow, 17, 1,11).getValues();
var order3 = sheet.getRange(currentRow, 29, 1,11).getValues();
var email = sheet.getRange(currentRow,2).getValues();
var tab = ""
var z ="";
for(var i in product){
if(product[i]!="") z += "<tr><td style='padding:5px'>" + product[i] + "</td><td style='padding:5px'>" + order1[i] + "</td><td style='padding:5px'>" + order2[i] + "</td><td style='padding:5px'>" + order3[i] + "</td></tr>";
}
tab = "<table><tr><th>Product Name</th><th>Order 1</th> <th>Order 2</th> <th>Order 3</th></tr>" + z + "</table>";
// MailApp.sendEmail(Session.getActiveUser().getEmail(),"Your report", report, {htmlBody: report});
MailApp.sendEmail(email,"Order Confirmation", tab, {htmlBody: tab});
}
以下代码在电子表格中发送一封包含选定数据的电子邮件,但是电子邮件中的结果并不是一个接一个。例如,我希望它看起来像这样:
Product Name order 1 order 2 order 3
prod A 2 2 1
prod B 3 1 4
Prod C 12 7 9
但是最终看起来像这样:
Product Name order 1 order 2 order 3
prod A,prod B,prod C 2,3,12 2,1,7 1,4,9
请告诉我我在做什么错。我真的很想学习。
最佳答案
getValues
返回一个二维数组。这就是product[0]
显示为“产品A,产品B,产品C”的原因。那就是数组toString
在起作用。因此,您需要打印product[0][0]
,product[0][1]
,product[0][2]
。
for(var i in product) {
for (var j in product[i]) {
z += "<tr><td style='padding:5px'>" + product[i][j] + "</td><td style='padding:5px'>" + order1[i][j] + "</td><td style='padding:5px'>" + order2[i][j] + "</td><td style='padding:5px'>" + order3[i][j] + "</td></tr>";
}
}
假定
product
,order1
,order2
和order3
都具有相同的大小。关于javascript - 如何在表格上排列电子邮件的数组值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33794484/