NodeJS:智能JSON转换为Excel文件

时间:2016-07-23 20:34:13

标签: javascript json node.js excel

我在NodeJS工作,我想将JSON格式的对象导出到Excel文件。

我很清楚,为此目的(至少)有三个npm包,但到目前为止,这些都没有给我提供我梦寐以求的输出。

这是我的javascript对象:



$('#submit-form-btn').click(function() {
    // Option 1: using the serialized version
    ar = $()
    for (var i = 0; i < t.rows()[0].length; i++) { 
        ar = ar.add(t.row(i).node())
    }
    $.ajax({
        type: "POST",
        url: 'url-to-post',
        data: ar.find('select,input,textarea').serialize(),
        success: function() {
            //do something
        }
    });

    // Option 2: using the object we just created:
    json_obj = {}
    ar.find('select,input,textarea').each(function(i, el) {
        json_obj[$(el).attr('name')] = $(el).val();
    });
    $.ajax({
        type: "POST",
        url: 'url-to-post',
        data: json_obj,
        success: function() {
            //do something
        }
    });
});
&#13;
&#13;
&#13;

我梦中的.xls(或.xlsx)(或任何电子表格格式)每个哈希键都有一行。在每一行:第一列是hashkeyX,第二列是dataAX,第三列是dataBX。

是否可以使用可用的工具实现这样的结果,还是我必须从头开始编码?有什么建议可以接近这个结果吗?

1 个答案:

答案 0 :(得分:3)

您可以在不添加任何其他库的情况下写入csv(逗号分隔值)文本文件。默认情况下,此扩展程序在Excel中打开。

var fs = require('fs');
var file = fs.createWriteStream('file.csv', {'flags': 'w', autoClose: true});
var result = '';
for (var hashkey in myObject) 
    result += hashkey + ';' + myObject[hashkey].keyA + ';' + myObject[hashkey].keyB + '\n';
file.write(result);