gpt4 book ai didi

google-apps-script - 使用 Google 脚本打开包含数据的 HTML 文件

转载 作者:行者123 更新时间:2023-12-01 09:12:22 28 4
gpt4 key购买 nike

我正在尝试使用谷歌脚本在 HTML 文件中显示一堆数据,但是,我的数据似乎没有进入 HTML 文件,我不知道为什么。有人可以告诉我我在这里缺少什么吗?
路径:htmlList.html

<!DOCTYPE html>
<html>
<head>
<base target="_top" />
</head>
<body>
My HTML page

<? for(var i = 0; i <= (users.length -1); i++) { ?>

<p><?= users[i].firstName ?></p>
<? } ?>
</body>
</html>
路径: Code.js
function doGet(users) {
var html = HtmlService.createTemplateFromFile("htmlList");
html.users = users;
return html.evaluate().setTitle("Test my app");
}

function generateLinks() {
var spreadSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var rr = spreadSheet.getLastRow();

var users = [];
for (var i = 3; i <= rr; i++) {
var firstName = spreadSheet.getRange(i, 1).getValue();

var user = {
firstName: firstName
};

users.push(user);
}

doGet(users);
}

最佳答案

  • 当您在脚本编辑器中运行该功能时,您希望使用创建的 HTML 数据为自己的浏览器打开新选项卡。
  • 您正在使用容器绑定(bind)脚本。

  • 如果我的理解是正确的,那么这个修改呢?

    修改点:

    在此修改中,我使用了以下流程。请认为这只是几个答案之一。
  • 通过运行 runScript() ,打开一个对话框。
  • 打开的对话框运行 Javascript,用于打开浏览器的新选项卡并打开 Web 应用程序的 URL。
  • 此时,generateLinks()doGet() 运行,然后检索值并将其放入 HTML 数据中。
  • 关闭对话框。

  • 通过此流程,当您在脚本编辑器中运行该函数时,创建的 HTML 将作为浏览器的新选项卡打开。

    修改后的脚本:

    请将以下脚本复制并粘贴到电子表格的容器绑定(bind)脚本中。然后,请将 Web 应用程序重新部署为新版本。届时,作为测试用例,请设置 Execute the app as:Who has access to the app:MeAnyone, even anonymous , 分别。在这种情况下,您不需要修改 HTML 端的脚本。
    function doGet() {
    var html = HtmlService.createTemplateFromFile("htmlList");
    html.users = generateLinks(); // Modified
    return html.evaluate().setTitle("Test my app");
    }

    function generateLinks() {
    var spreadSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var rr = spreadSheet.getLastRow();

    var users = [];
    for (var i = 3; i <= rr; i++) {
    var firstName = spreadSheet.getRange(i, 1).getValue();

    var user = {
    firstName: firstName
    };

    users.push(user);
    }
    return users; // Modified
    }

    // I added the following function. Please run this function.
    function runScript() {
    var url = ScriptApp.getService().getUrl();
    var script = "<script>window.open('" + url + "', '_blank').focus();google.script.host.close();</script>";
    var html = HtmlService.createHtmlOutput(script);
    SpreadsheetApp.getUi().showModalDialog(html, 'sample');
    }
  • var spreadSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();使用时,使用第一张电子表格。所以当你想从特定表中检索值时,例如,请修改为SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheetName") .

  • 笔记:
  • 如果您修改了 Web Apps 的脚本,请将 Web Apps 重新部署为新版本。这样,最新的脚本就会反射(reflect)到 Web 应用程序中。请注意这一点。

  • 引用:
  • HTML Service: Create and Serve HTML
  • HTML Service: Templated HTML
  • Taking advantage of Web Apps with Google Apps Script
  • 关于google-apps-script - 使用 Google 脚本打开包含数据的 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58055279/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com