使用复印的工作表上的按钮打开链接的表单

时间:2017-11-02 04:38:55

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

所以情况就是我将一个脚本发布为一个Web应用程序,它将一个电子表格的副本创建到点击它并打开它的人的google驱动器中。

此电子表格附带的表单可以正确复制。我想要的是有一个按钮(带有附加脚本的图片),当点击它时将启动谷歌表格的方式与该人点击'表格>相同的方式去现场表演'。

我尝试获取表单ID如下(从另一个SO问题得到这个):

app.controller("cobacont", ['$scope', '$http', function($scope, $http) {
    $scope.cari = function() {
        $http.get('https://........a={{month}}').then(function(response) {
            ...........
        });
    };
}]);

但是我不相信这是表单实时版本的id,也不能找到一种方法将这个id放入一个可行的URL中。 (我很确定这是您通过单击表单>编辑表单进入的表单的ID)

1 个答案:

答案 0 :(得分:1)

您无法直接从图纸链接,但您可以使用Apps脚本来提供包含表单链接的弹出窗口。这是一个示例:

function showForm() {
  // Helper function gets the live URL for the form
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var form = sheet.getFormUrl();

  showAnchor(form, "Google Form");
}

function showAnchor(url, name) {
  // Build some simple HTML and display
  var html = '<html><body><a href="'+url+'" target="blank" onclick="google.script.host.close()">'+name+'</a></body></html>';
  var ui = HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModelessDialog(ui,"demo");
}

另一个选项是包含一个样式化的单元格,可以作为表单的“按钮”。它消除了显示弹出窗口点击的额外步骤。这就像编写动态hyperlink公式一样简单:

function showForm() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var form = sheet.getFormUrl();

  sheet.getSheetByName('Sheet1').getRange(2,1).setValue('=hyperlink("' + form + '", "Open Form")');
}