如何将日期列转换为谷歌可视化API的JSON格式



这是我如何创建来自谷歌电子表格的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 列 (索引列 5) 的列属性指定为日期?

如果我创建一个图表包装器,它会失败并显示错误"第 6 列不是日期"。

var chartwraprange = new google.visualization.ControlWrapper({
controlType: 'DateRangeFilter',
containerId: 'controldaterange',
dataTable:dataTable,
options: {
filterColumnIndex: 6,
'ui': {
'label': '',
format:{pattern: "MM-dd-yyyy"},
},    
}
});
  • 您希望检索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]作为日期对象。
    • e[5]是列"F"。

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

修改后的脚本:

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

从:

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 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 日期到 Unix 时间戳

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

最新更新