我的电子邮件脚本有效并发送了Google表格范围。问题在于列的宽度根据单元格中的数据而变化。因此,我需要代码来将数据格式化为表格并保持电话号码的格式。
我不知道如何解决
function SendEmail() {
var s = SpreadsheetApp.getActive().getSheetByName('LOOKUP');
var to = s.getRange('G4').getValue();
var data = s.getRange('A36:E91').getValues();
var body = '';
for (var row in data) {
for (var col in data[row]) {
body += data[row][col] + '\t';
}
body += '\n';
}
MailApp.sendEmail(to, 'This Is Your Current Bus Roster', body);
}
电子邮件正文数据列的宽度必须固定,以便它们从上到下排列。
答案 0 :(得分:2)
您可以通过向yum
添加第四个参数来发送带有HTML正文的电子邮件。添加MailApp.sendMail
和<head>
标签将使您格式化表格。 (documentation)
<style>
但是,我建议您更进一步,并充分利用HTMLService class和模板。在模板中,您可以添加function SendEmail() {
var s = SpreadsheetApp.getActive().getSheetByName('LOOKUP');
var to = s.getRange('G4').getValue();
var data = s.getRange('A36:E91').getValues();
var body = '<head><style>' /* + your css here */ + '</style></head><table>';
for (var row in data) {
body += '<tr>';
for (var col in data[row]) {
body += '<td>' + data[row][col] + '</td>';
}
body += '</tr>';
}
body += '</table>';
MailApp.sendEmail(to, 'This Is Your Current Bus Roster', '', {htmlBody: body});
}
和<head>
标签,以便完全按照所需的格式设置表格。
<style>
文件“ email.html”:(Templated HTML documentation)
function SendEmail() {
var s = SpreadsheetApp.getActive().getSheetByName('LOOKUP');
var to = s.getRange('G4').getValue();
var data = s.getRange('A36:E91').getValues();
var body = HtmlService.createTemplateFromFile('email');
body.data = data;
body = body.evaluate().getContent();
MailApp.sendEmail(to, 'This Is Your Current Bus Roster', '', {htmlBody: body});
}