【问题标题】:Output data from googlesheet via htmlservice using Google Apps Script使用 Google Apps 脚本通过 htmlservice 从 googlesheet 输出数据
【发布时间】:2019-05-06 13:50:24
【问题描述】:

我的任务是提供电子表格中的数据。有奖品有多个职位。我想使用 html 模板和 HtmlService 将它提供给用户

我已经准备好带有我想要提供数据的地方的 html 模板。 我编写了从 googleSheet 收集数据并存储在对象中的脚本。

谷歌应用环境中的js:

var htmlOutput = HtmlService
       .createHtmlOutputFromFile('kosztorys.html')
       .setWidth(500)
       .setHeight(550)
SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'Some title');

我现在很困惑,不知道该怎么办。我已经尝试了一些在互联网上找到的解决方案,但它不起作用。如何将数据放入模板?

【问题讨论】:

    标签: html json google-apps-script


    【解决方案1】:

    我猜你需要这样的东西:

    var htmlOutput = HtmlService
           .createHtmlOutputFromFile('kosztorys')
           .evaluate()
           .setWidth(500)
           .setHeight(550)
    SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'Some title');
    

    通常,您不需要为文件名提供 .html,因为 Google 脚本会为您添加它。因此,在您的情况下,程序正在寻找一个名为 kosxtorys.html.html 的文件。

    Here's an example of a templated HTML webapp

    这是一个示例,展示了如何将电子表格的内容放入对话框中。

    function onOpen() {
      SpreadsheetApp.getUi().createMenu('My Tools')
      .addItem('Read Data from Active Sheet', 'readDataFromSheet')
      .addToUi();
    }
    
    
    function readDataFromSheet() {
      var ss=SpreadsheetApp.getActive();
      var sh=ss.getActiveSheet();
      var rg=sh.getDataRange();
      var vA=rg.getValues();
      var html="<style>td,th{border:1px solid black;}</style><table>";
      for(var i=0;i<vA.length;i++) {
        html+='<tr>';
        for(var j=0;j<vA[i].length;j++) {
          if(i==0) {
            html+=Utilities.formatString('<th>%s</td>',vA[i][j]);
          }else{
            html+=Utilities.formatString('<td>%s</td>',vA[i][j]);
            Logger.log('vA[%s][%s]=%s>',i,j,vA[i][j]);
          }
        }
        html+='</tr>';
      }
      html+='</table>';
      var userInterface=HtmlService.createHtmlOutput(html);
      SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Reading Data From A Spreadsheet')
    }
    

    这是电子表格的样子:

    这就是对话框的样子:

    有多种方法可以从电子表格中输出数据,这在很大程度上取决于您的数据。但这只是其中之一。

    【讨论】:

    • 并非如此。模板化的 HTML 不能解决我的问题:如何从电子表格中将数据放入 html?
    • @Adam Serocki 您说您使用的是 HTML 模板,但我注意到您在 htmlservice 方法中没有评估。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 2015-01-19
    • 2015-02-22
    • 2013-09-06
    • 1970-01-01
    • 2017-08-20
    • 2019-08-08
    相关资源
    最近更新 更多