我在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;
我梦中的.xls(或.xlsx)(或任何电子表格格式)每个哈希键都有一行。在每一行:第一列是hashkeyX,第二列是dataAX,第三列是dataBX。
是否可以使用可用的工具实现这样的结果,还是我必须从头开始编码?有什么建议可以接近这个结果吗?
答案 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);