如何将Google Sheets数据插入带动态字段的HTML模板
问题描述
我是编程新手,正满怀热情学习编程,并非有经验的开发者。我尝试从Google Sheets获取数据并插入预制HTML模板,但没能成功。我的需求是生成基于HTML的员工邮件签名——手动操作不仅耗时,还容易出错,后续修改也十分麻烦。
我之前曾跟着一个教程成功实现过从表格提取数据生成HTML表格,但在新项目里复刻这个方法却不管用。我想要的理想效果是:运行应用后,根据Sheet中的行数生成对应数量的现成HTML文件;同时有个条件:某个字段仅在员工有值时显示,为空则不插入。
我对JavaScript非常陌生,但渴望学会相关技能。
补充内容
有人让我分享目前的进度,因字符限制无法放在评论里。我写了一个Apps Script,里面是简化版的HTML模板,已经能通过JS修改姓名、姓氏,以及控制img标签的部分src。
我还写了一个将脚本放在head部分的HTML文件(在Apps Script中我有单独的JavaScript文件,会在HTML模板文件中调用):
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;600;800;900&display=swap" rel="stylesheet"> <script> window.onload = function() { // 需要从Google Sheets获取这个变量的值 var name = 'blank-profile-picture-973460_1280'; var imgsrc = name; document.getElementById('imgSource').src = 'https://cdn.pixabay.com/photo/2015/10/05/22/37/' + imgsrc + '.png'; var emName = 'Joe'; var emSurname = 'Doe'; document.getElementById('Name').innerHTML = emName document.getElementById('Surname').innerHTML = emSurname }; </script> </head> <body> <table cellspacing="0" cellpadding="0" border="0" style="vertical-align:-webkit-baseline-middle;font-family:'Poppins', sans-serif;"> <tbody> <td> <td valign="middle" style="padding-left: 0px; padding-top: 0px; padding-bottom: 0px; padding-right: 20px;"> <span style="margin:0px;font-family:'Poppins', sans-serif;font-size:20px;font-weight:800; padding-top:5px;color:black" id="Name" ></span> <span style="margin:0px;font-family:'Poppins', sans-serif;font-size:20px;font-weight:800; padding-top:5px;color:#3d85c6" id="Surname"></span><br><img width="158" height="158" min-height="158" min-width="158" max-height="158" max-width="158" src="" id="imgSource"> </td> </td> </tbody> </body> </html>
之前的教程是用数组提取整个表格,现在我需要映射整列(姓名、姓氏、图片src)或特定单元格来获取这些值。
内容的提问来源于stack exchange,提问作者MacW_92
相关产品推荐
相关产品推荐

