作者:洋索菲命_563 | 来源:互联网 | 2023-10-11 05:45
媒介之前有个项目中运用到了一个前端的download.js库,主如果用来拼接内容然后天生一个.txt或许.csv等文件让用户下载,不过现在这个库不支持了chrome和safari等
媒介
之前有个项目中运用到了一个前端的download.js
库,主如果用来拼接内容然后天生一个.txt
或许.csv
等文件让用户下载,不过现在这个库不支持了chrome
和safari
等webkit
内核的浏览器了。而且下载的内容如果有中文字符的话另有乱码的征象。
用 Node.js 天生 csv 文件
想运用Node.js
来天生 csv 文件的话,可以本身拼接好内容后经由过程fs.writeFile
来写入一个文件。不过照样有个题目,如果有中文字符的照样会涌现乱码的状况。
接下来就是引见一下两个库可以处理我们的题目,一个是json2csv
可以经由过程json
的数据去天生csv
文件的内容,然后在fs.writeFile
,别的一个库则是iconv-lite
用来把内容的编码转换为GBK
花样,这样一来就可以处理中文乱码的题目。
另有一个值得一提的,就是有其他的小伙伴会用iconv
这个库,不过我发明我运用npm
照样cnpm
都装置不上,所以就运用了iconv-lite
这个库。可以注重一下这个题目。
贴一个实例:
var json2csv = require('json2csv');
var icOnv= require('iconv-lite');
var fs = require('fs');
var fields = ['field1', 'field2', 'field3']; // 这里的内容是不支持中文的。
var myData = {
'field1': 'field1',
'field2': 'field2',
'field3': 'field3',
};
json2csv({ data: myData, fields: fields }, function(err, csv) {
if (err) console.log(err);
var newCsv = iconv.encode(csv, 'GBK'); // 转编码
fs.writeFile('demo.csv', newCsv, function (err) {
if (err) console.log(err);
console.log('Saved done!');
});
});
相干衔接