我有excel工作表和数据列表。使用API nodejs中的CSV导出问题
- 读Excel数据
- 搜索练成对另一系统的数据。
这个步骤运行良好。但之后,我需要格式化CSV文件中的数据,如Excel数据和搜索结果都必须显示在CSV文件中。
这里我不能把excel数据导入csv文件。例如“本田”是excel文件中的汽车名称,我正在阅读它并在另一个系统上搜索。这些结果需要以csv显示。
请指教。
Excel中输入:
Car name, Description
Honda, some description
API响应数据:在CSV文件
[{
"total": 10,
"results": [{
"name": {
"val": "Honda",
"id": "0271b276",
"type": "String",
},
"attributes": [{
"val": "accord",
"type": "field1",
}, {
"val": "test123",
"type": "field3",
}],
}]
},
]
期望输出。
Car Name , Description,Total results,Make , Model
honda , Description,10 , Honda, accord
代码
const _ = require('lodash');
const xlsx = require('xlsx');
const workbook = xlsx.readFile(__dirname + '/test.xlsx');
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
for (let z in worksheet) {
if(z.toString()[0] === 'A'){
request({
url: 'http://url', //URL to hit
method: 'POST',
json: {
query: worksheet[z].v,
}
}, function(error, response, data){
if(error) {
console.log(error);
} else {
var fields = ['Make','Model','total', 'results[0].name.val','results[0].name[0].val'];
var fieldNames = ['Make','Model','Total','Name','Description'];
var opts1 = {
data: data,
fields: fields,
fieldNames: fieldNames,
};
var json2csv = require('json2csv');
var csv = json2csv(opts1);
fs.writeFile('file.csv', csv, function(err) {
if (err) throw err;
console.log('file saved');
});
我没有看到的第二阵列,我看到包含对象和阵列的阵列。也就像@ T.J.Crowder建议你在'var fieldnames'中缺少''' –
请提供一个你期望输出结果的例子。 –
我的期望是包含csv文件中的那5列。 – user2848031