如何将日期列转换为用于Google可视化API的JSON格式

9 浏览
0 Comments

如何将日期列转换为用于Google可视化API的JSON格式

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

这是我创建来自Google电子表格的dataTable的方法。

var params = { 
  valueRenderOption: "UNFORMATTED_VALUE",
  spreadsheetId: '15WX-5oiu54oiu35oi3u4o5o34iu5ou43oiu534',
  range: 'Sheet2!A:H', // 获取"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]]}); // 添加
  var w = new google.visualization.ChartWrapper({dataTable: values}); // 添加
  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,它会报错“第6列不是日期”。

var chartwraprange = new google.visualization.ControlWrapper({
  controlType: 'DateRangeFilter',
  containerId: 'controldaterange',
  dataTable: dataTable,
  options: {
    filterColumnIndex: 6,
    'ui': {
      'label': '',
      format:{pattern: "MM-dd-yyyy"},
    },    
  }
});

0
0 Comments

问题的原因是想要将日期列转换为JSON格式以供Google Visualization API使用。解决方法是对原始脚本进行修改,将从电子表格中检索到的日期值从序列号转换为Unix时间戳,然后再转换为日期对象。

修改后的脚本如下:

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]]});

参考链接如下:

- [Excel date to Unix timestamp](https://stackoverflow.com/q/1703505/7108653)

如果我的理解是正确的,希望以上修改对您有帮助。如果我误解了您的问题,我向您道歉。

您真是个救星!非常感谢您!

我很高兴您的问题得到解决。也感谢您的支持。

0