如何将Google Visualization API的日期列转换为JSON格式

问题描述 投票:0回答:1

以下是我如何创建来自Google电子表格的dataTable。

 var params = { 
    valueRenderOption: "UNFORMATTED_VALUE",
    spreadsheetId: '15WX-5oiu54oiu35oi3u4o5o34iu5ou43oiu534',
    range: 'Sheet2!A:H', // Retrieve the values of "A:H".
  };
      var request = gapi.client.sheets.spreadsheets.values.get(params); 
  request.then(function(response) {
         var values = response.result.values.map(function(e) {return [e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7]]}); // Added
    var w = new google.visualization.ChartWrapper({dataTable: values}); // Added

    var dataTable = w.getDataTable();

     dataTable.setColumnProperty(2, 'role', 'tooltip')
     dataTable.setColumnProperty(3, 'role', 'style')
     dataTable.setColumnProperty(4, 'date', 'Start'); 
     dataTable.setColumnProperty(5, 'date', 'End');
     dataTable.setColumnProperty(2, {type: 'string', role: 'tooltip', p: {html: true}});

 ......

如何将第6列的列属性(indexColumn5)指定为日期?

如果我创建了一个chartwrapper,它将失败并显示错误“Column 6 is a date”。

var chartwraprange = new google.visualization.ControlWrapper({
controlType: 'DateRangeFilter',
containerId: 'controldaterange',
dataTable:dataTable,
options: {
  filterColumnIndex: 6,

   'ui': {
                'label': '',
                 format:{pattern: "MM-dd-yyyy"},
         },    
         }
         });
javascript arrays json google-visualization google-chartwrapper
1个回答
2
投票
  • 您想要检索e[5]var values = response.result.values.map(function(e) {return [e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7]]})作为日期对象。 e[5]是“F”栏。

如果我的理解是正确的,那么这个修改怎么样?在此修改中,我修改了您的脚本。因此,请将此视为几种解决方案中的一种。

修改后的脚本

在此修改中,作为序列号检索的日期值将转换为unix时间和日期对象。请在脚本中反映以下修改。

From:

var values = response.result.values.map(function(e) {return [e[0], e[1], e[2], e[3], e[4], e[5], e[6], e[7]]});

To:

var values = response.result.values.map(function(e) {return [e[0], e[1], e[2], e[4], new Date((e[5] - 25569) * 86400 * 1000), e[6]]});

Reference:

如果我误解了你的问题,我道歉。

© www.soinside.com 2019 - 2024. All rights reserved.