繁体   English   中英

使用Google Apps脚本通过htmlservice从googlesheet输出数据

[英]Output data from googlesheet via htmlservice using Google Apps Script

我的任务是从电子表格中提供数据。 奖品有多个位置。 我想使用html模板和HtmlService为用户提供服务

我准备了html模板,其中包含我想要提供服务数据的地方。 我编写了编写来自googleSheet的数据并存储在对象中的脚本。

谷歌应用程序环境中的js:

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

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

我的猜测是你需要这样的东西:

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

通常,您无需为文件名提供.html ,因为Google Script会为您添加。 所以在你的情况下,该程序正在寻找一个名为kosxtorys.html.html的文件。

以下是模板化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')
}

这是电子表格的样子:

在此输入图像描述

这就是对话框的样子:

在此输入图像描述

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM