使用JS自定义XLSX表

我正在开发一个自定义小部件,它可以将Exosite IoT Platform中的数据导出为.csv和.xlsx文件。 它工作得很好,我可以做所有的select,导出数据,但我想问你能不能帮我改变我得到的方式,并在表格中显示:

今天,它是这样的:

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最近,我感到一些困难,但…

我相信我需要筛选和sorting数据源的时间戳,例如C ++上的列表,并应用TList,例如(不知道是否有像JS这样的命令)。 它应该创build一个行数等于这个列表的大小和等于信道数量+ 1(时间戳)的列数的表格。 在每一行我都加上一个时间戳,我必须寻找一个相同的时间戳,并插入与此相关的通道的值。