javascript生成的csv中的换行符用于excel导入

时间:2014-08-14 07:02:41

标签: javascript excel csv export-to-excel export-to-csv

我使用浏览器端的javascript(Chrome窗口)

从网页生成并下载CSV
function toCsv(arr){
    return arr.reduce(function(csvString, row){
        csvString += row.join(',') ;
    csvString += "\r\n";  //";";//"\n";
        return csvString;
    }, '');
}

function flowDataCsv(){
    document.location = 'data:Application/octet-stream,' + toCsv(flowDataGrid);
}

我尝试用“;”,“\ r \ n”和“\ n”来划分行,但所有三个结果都是csv:s,它们将导入到一行而不是网格中。我应该如何终止行以获得excel以将其识别为行结束并开始在新行上插入数据?

2 个答案:

答案 0 :(得分:9)

不确定您是否仍需要这个问题的答案。但是,当我遇到同样的问题时,我会发布解决方案。

使用上面的代码,你唯一缺少的就是编码你的toCsv函数返回的csv字符串。在上面的代码中看起来像这样:

function toCsv(arr){
    return arr.reduce(function(csvString, row){
        csvString += row.join(',') ;
    csvString += "\r\n";  //";";//"\n";
        return encodeURIComponent(csvString);
    }, '');
}

function flowDataCsv(){
    document.location = 'data:Application/octet-stream,' + toCsv(flowDataGrid);
}

希望这有助于将来再次遇到此问题的任何人!

答案 1 :(得分:0)

尝试用\u2028代替\n来代替\u2029\r

src:https://github.com/zemirco/json2csv/issues/91#issuecomment-276555551