Google Apps Script模板渲染异常:无法显示Google Sheet员工姓名
解决Google Apps Script模板变量不渲染问题
问题原因
你遇到的问题有两个核心原因:
- HTML模板中的变量标签被HTML实体转义,导致模板引擎无法解析,直接显示原始字符串;
isLoggedIn()函数固定返回false,程序永远不会加载firstForm.html,而是跳转登录页,因此即使修复标签也无法看到效果。
解决方案
1. 修复HTML模板的变量标签
在firstForm.html中,将input的value属性里的转义实体<?!= employeeName ?>替换为Google Apps Script模板支持的原始标签<?!= employeeName ?>:
修改后的代码片段:
<div class="mb-1" style="display: flex; align-items: center;"> <div class="table-divider" style="border-top: 1px solid #000;"></div> <label for="name" class="form-label" style="flex: 0 0 150px;">Employee Name:</label> <input type="text" id="name" name="name" class="form-control form-control-sm" style="flex: 1;" value="<?!= employeeName ?>" disabled required> </div>
- 说明:
<?!= ?>是Google Apps Script的不转义输出标签,适合直接将变量值插入HTML属性或文本中;如果员工姓名可能包含特殊HTML字符,也可以用<?= ?>(自动转义实体),确保页面安全。
2. 修复登录判断逻辑
当前isLoggedIn()函数返回false,导致程序始终加载loginPage.html。测试阶段可以先将其改为返回true,验证姓名渲染效果,后续再替换为实际的登录验证逻辑(比如检查用户会话、Google账号权限等):
修改后的isLoggedIn()函数:
function isLoggedIn() { return true; // 测试用,后续替换为真实登录验证逻辑 }
验证步骤
- 保存修改后的Code.gs和firstForm.html;
- 重新部署Web应用(注意选择新版本,且部署权限设置正确);
- 访问Web应用,此时应该能看到Google Sheet中H2单元格的员工姓名正确显示在输入框中。
内容的提问来源于stack exchange,提问作者Hershey
相关产品推荐
相关产品推荐

