首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript/GAS- column到HTML表-只接受第一列

Javascript/GAS- column到HTML表-只接受第一列
EN

Stack Overflow用户
提问于 2020-07-06 10:01:53
回答 1查看 95关注 0票数 0

我有一个代码,它可以读取google表,并将数据带到HTML表中。

代码语言:javascript
运行
复制
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代码:

代码语言:javascript
运行
复制
<!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>

这是谷歌表格的结构。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-06 11:59:42

为了检索包括"A“到"F”列在内的行,我建议进行以下修改。

发自:

代码语言:javascript
运行
复制
const tableRangeValues=ws.getRange(2,1, lr-2).getDisplayValues();

至:

代码语言:javascript
运行
复制
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“的单元格,但底部行除外。
  • 如果要从第二行检索行到最后一行,请按以下方式修改。
代码语言:javascript
运行
复制
- From

const tableRangeValues=ws.getRange(2,1,lr-2).getDisplayValues();

代码语言:javascript
运行
复制
- To

const tableRangeValues=ws.getRange(2,1,lr-1,6).getDisplayValues();

参考文献:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62753656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档