使用JS的自定义XLSX表

时间:2017-05-03 14:39:31

标签: javascript excel xlsx alasql

我正在开发一个自定义小部件,用于从.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(时间戳)。在每一行我都设置了一个时间戳,我必须寻找一个相等的时间戳并插入与此相关的频道值。

0 个答案:

没有答案