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

Mag*_*ant 5 javascript csv excel export-to-excel export-to-csv

我在浏览器端使用javascript从网页生成并下载CSV(Chrome窗口)

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);
}
Run Code Online (Sandbox Code Playgroud)

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

小智 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);
}
Run Code Online (Sandbox Code Playgroud)

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