如何将日期列转换为用于Google可视化API的JSON格式
如何将日期列转换为用于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"}, }, } });
问题的原因是想要将日期列转换为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)
如果我的理解是正确的,希望以上修改对您有帮助。如果我误解了您的问题,我向您道歉。
您真是个救星!非常感谢您!
我很高兴您的问题得到解决。也感谢您的支持。