我正在开发一个自定义小部件,用于从.csv和.xlsx文件中的Exosite IoT平台导出数据。它工作得很好,我可以做所有选择,导出数据,但我想问你是否可以帮我改变我的方式并在表格上显示:
今天,它是这样的:
name | value | date | unit
Channel 1 | 20.5 | 5/3/2017 10:41 AM | ºC
Channel 1 | 22.5 | 5/3/2017 10:42 AM | ºC
Channel 1 | 19.5 | 5/3/2017 10:43 AM | ºC
Channel 2 | 18.5 | 5/3/2017 10:41 AM | ºC
Channel 2 | 23.5 | 5/3/2017 10:42 AM | ºC
我想这样表现出来:
Channel 1 | Channel 2 | date | unit
20.5 | 18.5 | 5/3/2017 10:41 AM | ºC
22.5 | 23.5 | 5/3/2017 10:42 AM | ºC
19.5 | 20.5 | 5/3/2017 10:43 AM | ºC
20.5 | 20.5 | 5/3/2017 10:44 AM | ºC
20.5 | 20.5 | 5/3/2017 10:45 AM | ºC
我编辑的.js函数是:
processData:function(){
this.dataToExport=[];
var dataToExport=this.dataToExport;
var i,
j,
k,
date,
dateFormat,
value,
unit,
data;
// collect output data
k = 0;
for (i = 0; i < resources.length; i++) {
if (resources[i].isEnabled()) {
for (j = 0; j < resources[i].data.length; j++) {
date = new Date(resources[i].data[j][0] * 1000);
dateFormat = '';
dateFormat += date.toLocaleTimeString() + ' ';
dateFormat += date.toDateString();
value = resources[i].data[j][1];
try {
if (typeof JSON.parse(value) === 'object') {
value = $('<span/>')
.attr('title', value)
.text('More data');
}
} catch (e) {}
unit = JSON.parse(resources[i].info.description.meta).datasource.unit;
dataToExport[k] = {
date: dateFormat,
value: value,
name: resources[i].info.description.name,
unit: unit
};
k++;
}
}
}
},
dataToExport:[],
exportData:function(fileExtension){
alasql("SELECT * INTO " + fileExtension + "('exportedData." + fileExtension + "',{headers:true}) FROM ?", [this.dataToExport]);
}
我正在使用alaSQL来做这件事,但任何帮助都会非常棒!我最近正在使用javascript,但我感到有些困难......
我认为我需要过滤和排序数据源的时间戳,例如C ++上的列表和应用TList(不知道JS上是否有这样的命令)。它应该创建一个表格,其行数等于此列表的大小,列数等于通道数量+ 1(时间戳)。在每一行我都设置了一个时间戳,我必须寻找一个相等的时间戳并插入与此相关的频道值。