NodeJS JSON数据转为CSV存入文件
注意 :导出数据值 null 与 "" 之间的区别
1. 执行代码
// 用到的类库
const fs = require('fs-extra') // 文件读写
const Json2csvParser = require('json2csv').Parser; // 数据格式转换
const iconv = require('iconv-lite'); // 数据编码转换
const path = require('path')
// 列头与数据
const fields = ['car', 'price', 'color', 'for', 'aaa'];
const data = [
{
car: 'Audi',
price: 40000,
color: 'blue',
for: null,
aaa: ''
}, {
car: 'BMW',
price: 35000,
color: 'black',
for: null,
aaa: ''
}, {
car: 'Porsche',
price: 60000,
color: 'green',
for: null,
aaa: ''
}
]
// 接口数据转换
const json2csvParser = new Json2csvParser({fields});
const csv = json2csvParser.parse(data);
console.log(csv);
// 数据编码调整
const csvBuf = new Buffer(csv);
const str = iconv.decode(csvBuf, 'utf-8');
const str2 = iconv.encode(str, 'gbk');
// 文件导出
const file = `\\records\\${Date.now()}.csv`;
const filePath = path.resolve('./') + file
fs.outputFileSync(filePath, str2);
2. 导出结果
"car","price","color","for","aaa"
"Audi",40000,"blue",,""
"BMW",35000,"black",,""
"Porsche",60000,"green",,""