使用 Node 编写后端接口时,遇到导出 csv 文件。
用到的类库
fs-extra // 文件读写
json2csv // 数据格式转换
iconv-lite // 数据编码转换
声明导出的字段
const fields = [
{
label: "编号", // 字段的标题
value: "id" // 对应的 字段
},
{
label: "名称",
value: "name"
}
...
]
接口数据转换
const json2csvParser = new Parser({fields});
const csv = json2csvParser.parse(data);
console.log(csv);
数据编码调整
let csvBuf = new Buffer(csv);
var str = iconv.decode(csvBuf, "utf-8");
var str2 = iconv.encode(str, "gbk");
文件导出
const file = `records/${Date.now()}.csv`;
fs.outputFileSync(process.env.PUBLIC_PATH + file, str2);
网友评论