根据Google表格中的用户名查看特定行

时间:2014-07-08 21:57:10

标签: google-apps-script google-sheets google-sites

假设我有一个谷歌网站。该网站是电子表格的小工具。我希望小工具根据查看网站的人的用户名显示电子表格中的一个特定行。这可能与GAS有关吗?

更新

function onOpen() {
    var ss = SpreadsheetApp.openById("abcdefg123456789");
    var first = ss.getSheetByName("first");
    var maxRows = first.getMaxRows();
    var email = Session.getActiveUser().getEmail();

    //show all the rows
    first.showRows(1, maxRows);

    var data = first.getRange('A:A').getValues();

    //iterate over all rows
    for (var i = 0; i < data.length; i++) {
        if (data[i][0] !== email) {
            first.hideRows(i + 1);
        }
        if (data[i][0] === "") {
            return;
        }
    }
}

此代码的问题,或者可能是GAS的问题,我无法让它在网站上运行。我将此代码链接到电子表格,并且当我打开它时它会执行它应该做的事情(隐藏每行没有我的电子邮件地址)。但是,如果我将相同的电子表格链接到Google网站,则代码似乎无法运行,并且窗口仍会显示所有其他行。

2 个答案:

答案 0 :(得分:1)

您可以在电子表格和小工具之间使用网络应用代理。在他的Row-level permissions小工具的Romain Awesome Tables附录中演示了这种技术(以及执行您正在寻找的工作代码)。

答案 1 :(得分:0)

我不这么认为,你需要在开放的剧本中做这个剧本。并且小工具不会触发该触发器。

您可以为该网站创建应用脚本 1.获取当前活跃用户 2.在电子表格中查找数据 3.返回网站页面的html

将脚本发布为webapp,以用户运行应用程序

执行

包含您想要html的应用脚本小工具