将google脚本变量/数组传递到html

eivnm1vs  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(352)

我正在构建一个web应用程序,它是google的图表时间线。我有一个脚本,可以从googlesheets返回正确的数组。我想把这个结果传递到特定位置的html。我正在使用谷歌应用程序脚本。

function doGet(e) {

  return HtmlService.createTemplateFromFile('timeline3').evaluate();

}

function useDataRange() {

var rows = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data');
var test = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data').getRange(3, 7, rows.getLastRow(), 1).getValues();

test = test.slice(0,rows.getLastRow()-2);
JSON.stringify(test);
Logger.log(test);
return test;

}

以下是我的html代码:

<!DOCTYPE html>
<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

  </head>
  <body>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['timeline']});
      google.charts.setOnLoadCallback(getData);

      function getData(){

        return google.script.run.withSuccessHandler(drawChart).useDataRange();

      }
      function drawChart(arrayFromSheets) {
        var container = document.getElementById('timeline-tooltip');
        var chart = new google.visualization.Timeline(container);
        var dataTable = new google.visualization.DataTable();

        dataTable.addColumn({ type: 'string', id: 'President' });        
        dataTable.addColumn({ type: 'string', id: 'dummy bar label' });
        dataTable.addColumn({ type: 'string', role: 'tooltip' });
        dataTable.addColumn({ type: 'string', id: 'style', role: 'style' });
        dataTable.addColumn({ type: 'date', id: 'Start' });
        dataTable.addColumn({ type: 'date', id: 'End' });
        dataTable.addRows(arrayFromSheets);

        chart.draw(dataTable);
      }
    </script>
    <div id="timeline-tooltip" style="height: 400px;"></div>
  </body>
</html>

我正在尝试用数组填充datatable.addrows()。我已经浏览了谷歌的文档,这应该行得通。我就是不明白。请帮忙
以下是从usedatarange函数返回的数组示例:

[['Lady Gita' ,null , 'June 19 -26' , '#176BEF', new Date(2021, 6, 19) , new Date(2021, 6, 26)], ['Lady Gita' ,null , 'Jun 27 - Jul 11' , '#FF3E30', new Date(2021, 6, 27) , new Date(2021, 7, 11)]]

在控制台中搜索时,我得到以下信息:控制台:

qij5mzcb

qij5mzcb1#

为什么不 var test = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data').getRange(3, 7, rows.getLastRow()-2, 1).getValues(); 第三个参数是不是最后一行的行数

相关问题