Nodejs 操作csv的简单读写,直接上代码,记录一下
const fs = require('fs');
function WriteToFile() {
// 模拟写入csv的数据
let list = []
for (let i = 0; i < 5; i += 1) {
list.push({
id: 'id' + i,
s1: '床前明月光',
s2: '疑是地上霜',
s3: '举头望明月',
s4: '低头思故乡',
})
}
// 生成表头 ( \ufeff --> 防止乱码 )
var csvContent = '\ufeff序号,';
csvContent += '一,';
csvContent += '二,';
csvContent += '三,';
csvContent += '四\n';
// 生成内容 \n下一行
list.forEach((item, index) => {
csvContent += index + ',';
csvContent += item.s1 + ',';
csvContent += item.s2 + ',';
csvContent += item.s3 + ',';
csvContent += item.s4 + '\n';
})
// 生成文件夹
fs.mkdir('test', (err) => {
if (err) {
return console.log(err)
}
})
// 生成csv文件
fs.writeFile('./test/test.csv', csvContent, function (err) {
if (err) {
console.log(err)
}
})
}
function ReadToFile() {
fs.readFile('./test/test.csv', "utf8", function (err, data) {
var list = new Array();
if (err) {
console.log(err.stack);
return;
}
ConvertToList(data, function (list) {
console.log(list);
})
});
}
function ConvertToList(data, callBack) {
data = data.toString();
var list = new Array();
var rows = new Array();
rows = data.split("\r\n");
for (var i = 0; i < rows.length; i++) {
list.push(rows[i].split(","));
}
callBack(list);
}
// 调用
WriteToFile();
// ReadToFile();