以特定格式导出到csv

时间:2015-08-28 09:22:02

标签: javascript jquery csv

是否有任何特定的方法可以控制csv文件列中每个数据的更新。我希望很少的列是文本格式,而数字格式很少。

例如:

我想用标题" 股票"更新此列。值是:

  

250.000,10.000,0.000,0.000,2.500,30.000,700.000,10.000,250.000,0.000。

但是,导出的csv文件未采用小数值。它显示为

  

250,10,0,0,2.5等

通常手动我可以转到每列的csv文件,选择它,右键单击,格式化单元格,然后将格式更改为文本或数字。但是,我不想手动完成。我希望在导出csv时自动完成。 代码:

$.each(exportArray, function (index, value) {
    csvData.push(x[index] + "," + y[index] + "," + d[index] + "," + z[index]  + ","+ a[index] + "," + e[index] + "," + b[index] + "," + c[index]);
});

csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(output);

$(this)
    .attr({
        'download': filename,
        'href': csvData,
        'target': '_blank'
    });

2 个答案:

答案 0 :(得分:1)

请参阅此问题和接受的答案 - Format number to always show 2 decimal places

基本上你需要这样做:

function toFixed3(n) {
    return parseFloat(Math.round(n * 1000) / 1000).toFixed(3);
}

csvData.push(toFixed3(x[index]) + "," + toFixed3(y[index]) + "," + 
    toFixed3(d[index]) + "," + toFixed3(z[index])  + ","+ 
    toFixed3(a[index]) + "," + toFixed3(e[index]) + "," + 
    toFixed3(b[index]) + "," + toFixed3(c[index]));

答案 1 :(得分:0)

在CSV文件中,您无法定义单元格的格式 Excel将使用数字的默认格式。

如果您想控制单元格格式,则应使用其他文件格式,例如SYLK