我有一个代码,它可以读取google表,并将数据带到HTML表中。
function Getdata(){
const ss= SpreadsheetApp.getActiveSpreadsheet();
const ws= ss.getSheetByName("Projects");
const headers= ws.getRange("A1:F").getValues();
const Project_State = headers[0][0];
const Start_Date = headers[0][1];
const End_Date = headers[0][2];
const Project_ID = headers[0][3];
const Project_Name = headers[0][4];
const Project_Code = headers[0][5];
const First_Name = headers[0][8];
const lr = ws.getLastRow();
const tableRangeValues=ws.getRange(2,1, lr-2).getDisplayValues();
const htmlTemplate = HtmlService.createTemplateFromFile("Notify")
htmlTemplate.Project_State= Project_State;
htmlTemplate.Start_Date= Start_Date;
htmlTemplate.End_Date= End_Date;
htmlTemplate.Project_ID= Project_ID ;
htmlTemplate.Project_Name=Project_Name;
htmlTemplate.Project_Code=Project_Code;
htmlTemplate.First_Name=First_Name;
htmlTemplate.tableRangeValues=tableRangeValues;
const htmlForEmail = htmlTemplate.evaluate().getContent();
MailApp.sendEmail({
to: Session.getActiveUser().getEmail(),
subject: 'Project End - Action Required',
htmlBody: htmlForEmail,
});
}根据我所做的研究,我已经能够在通过电子邮件发送的HTML表中显示工作表的标题,但是,在从工作表到HTM表中捕获行数据时,我遇到了一个挑战。我不确定我的射程是否关闭,或者我遗漏了什么。问题是,我只能获得HTML表的第一列数据。
以下是我的HTML代码:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<title>Weekly Report</title>
</head>
<body style="padding:3em;">
<p>Hi Project Leader,</p>
<p>please see below for the latest updates on the projcets you manage.<br>
<br /> Team</p>
<div style=""background-color:blue; height:4px;></div>
<h3> Project Details </h3>
<table>
<thead>
<tr>
<th><?= Project_State ?></th>
<th><?= Start_Date ?></th>
<th><?= End_Date ?></th>
<th><?= Project_ID ?></th>
<th><?= Project_Name?></th>
<th><?= Project_Code ?></th>
</tr>
</thead>
<tbody>
<?tableRangeValues.forEach(r=>{?>
<tr>
<td><?=r[0]?></td>
<td><?=r[1]?></td>
<td><?=r[2]?></td>
<td><?=r[3]?></td>
<td><?=r[4]?></td>
<td><?=r[5]?></td>
</tr>
<?})?>
</tbody>
</table>
<br>
</body>
</html>这是谷歌表格的结构。

发布于 2020-07-06 11:59:42
为了检索包括"A“到"F”列在内的行,我建议进行以下修改。
发自:
const tableRangeValues=ws.getRange(2,1, lr-2).getDisplayValues();至:
const tableRangeValues=ws.getRange(2,1, lr-2, 6).getDisplayValues();getRange(2,1, lr-2)是除底部行之外的"A2:A“的单元格。为了检索"A“到"F”列,我将其修改为getRange(2,1, lr-2, 6)。在这种情况下,范围是"A2:F“的单元格,但底部行除外。- Fromconst tableRangeValues=ws.getRange(2,1,lr-2).getDisplayValues();
- Toconst tableRangeValues=ws.getRange(2,1,lr-1,6).getDisplayValues();
参考文献:
https://stackoverflow.com/questions/62753656
复制相似问题