google-apps-script - 如何在电子邮件中粘贴带有谷歌脚本/谷歌表格宏的表格?
问题描述
我有这个宏可以向某些人发送电子邮件。问题在于它将表格粘贴到值中,而不是表格格式。我需要将表格粘贴为表格。
function Mails() {
var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
var filas= values[0][1];
var columnas= values[1][0];
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Enviar"));
var sheet = SpreadsheetApp.getActiveSheet();
var dataRange = sheet.getRange(2,4,filas,columnas);
var data = dataRange.getValues();
for (i in data) {
var rowData = data[i];
var emailAddress = sheet.getRange(1, 3).getValue();
var destinatario = rowData[0];
var sigla1 = sheet.getRange(2,4,filas,columnas).getValues();
var mensaje = 'Estimado ' + destinatario + ',\n\n' + sigla1 ;
var asunto = 'Mensajes Pendientes';
MailApp.sendEmail(emailAddress, asunto, mensaje);
}
}
function onOpen () {
var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'Send Emails', functionName: 'Mails'}
];
spreadsheet.addMenu('Enviar Emails', menuItems);
}
问题是这一行 var sigla1 =sheet.getRange(2,4,filas,columnas).getValues();
我必须将其粘贴为表格,而不是值。我怎样才能做到这一点?
谢谢
我现在正在尝试使用此代码..但它不起作用..
function Mails() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Enviar"));
var sheet = SpreadsheetApp.getActiveSheet();
var values = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
var filas= values[0][1];
var columnas= values[1][0];
var recipient = sheet.getRange(1, 3).getValue();
var subject = 'Estimado';
var vA=SpreadsheetApp.getActive().getSheetByName('Enviar').getDataRange().getValues();
var html="<style>th,td{border:1px solid black;}<table>";
for(var i=0;i<vA.length;i++) {
html+="<tr>";
for(var j=0;i<vA[i].length;j++) {
if(i==0) {
html+=Utilities.formatString('<th>%s</th>', vA[i][j]);
}else{
html+=Utilities.formatString('<td>%s</td>', vA[i][j]);
}
}
html+="</tr>";
}
GmailApp.sendEmail(recipient, subject, null, {htmlBody:html})
}
function onOpen () {
var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'Send Emails', functionName: 'Mails'}
];
spreadsheet.addMenu('Enviar Emails', menuItems);
}
行随数据而变化,因此该表取决于一天中有多少操作..
解决方案
将 HTML 表格转换为电子邮件
function sendHtmlTableViaEmail() {
var vA=SpreadsheetApp.getActive().getSheetByName('name').getDataRange().getValues();
var html="<style>th,td{border:1px solid black;}<table>";
for(var i=0;i<vA.length;i++) {
html+="<tr>";
for(var j=0;i<vA[i].length;j++) {
if(i==0) {
html+=Utilities.formatString('<th>%s</th>', vA[i][j]);
}else{
html+=Utilities.formatString('<td>%s</td>', vA[i][j]);
}
}
html+="</tr>";
}
//You have to add the code for recipient and subject
GmailApp.sendEmail(recipient, subject, null, {htmlBody:html})
}
推荐阅读
- tableau-api - 如何在画面中分离工作日/周末计算?
- ruby-on-rails - 如何保存编辑记录的用户 ID - Rails
- regex - perl 正则表达式从一个文件中提取以用于变量
- flutter - 如何使用 gRPC 获取数据但不使应用程序延迟?
- ios13 - IOS13 AVAudioRecorder 不尊重设置 AVLinearPCMBitDepthKey(16)
- hadoop - Hadoop yarn-webui 丢失了一些 jquery*.js 文件?
- c# - 如何在 ASP.Net Webforms 中执行 For 来添加元素
在每次迭代中标记? - javascript - 如何解决这个javascript循环?
- flutter - 在 Google Flutter 应用程序中管理社交用户详细信息
- javascript - fetch post 给我未定义的已发布数据?