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",,""
posted @ 2022-03-01 11:13  xustch  阅读(609)  评论(0编辑  收藏  举报