将浮点数写入节点中的csv文件

我正在尝试从json数据中从数据库中获取nodejs中的CSV文件。

我创build一个对象数组作为我的数据

var allExpenses = []; expenses.forEach(function(expense) { allExpenses.push({ amount: expense.amount, identificator: expense.identificator, person: expense.person.last_name + ' ' + expense.person.first_name, date: moment.tz(expense.date, "Europe/Budapest").format("DMYYYY"), description: expense.description || '-' }); }); 

然后我使用json2csv模块创buildCSV数据,并通过FS写入文件

 //create csv var csvFields = ['amount', 'identificator', 'person', 'date', 'description']; var csv = require('json2csv')({data: allExpenses, fields: csvFields, del: ';'}); var filename = new Date().valueOf() + '_csv_expenses.csv'; var filepath = config.path + '/reports/' + filename; fs.writeFile(filepath, '\ufeff' + csv, 'utf-8', function(err) { if(err) { console.log(err); res.status(500); res.json({success: false, msg: 'Error creating csv'}); } else { console.log('csv file saved'); res.status(200); res.json({success:true, filename: filename}); } }); 

这创build了正确的csv文件,我可以在Excel中打开它,但浮点数不能正确写入,不能用于SUM和其他操作,其中一些被视为DATE

在Excel中通过CTRL + 1 – > NUMBER格式化这些数字也没有帮助,因为那样被视为DATE的值完全closures。

我尝试添加选项excelStrings:真正的json2csv模块,然后数额写入正确,但是是string(=“0.456”),不能被转换为数字。

任何提示或build议,我可以尝试? 任何帮助赞赏。

好吧,我设法find一个解决scheme,

我只是从数量上做了string,并将浮点数更改为“浮动逗号”fe:

 expenses.forEach(function(expense) { var amountFormatted = expense.amount + ''; allExpenses.push({ amount: amountFormatted.replace('.', ','), ... })