在javascript中为excel导入生成CSV的换行符

line breaks in javascript generated csv for excel import

本文关键字:CSV 换行符 导入 javascript 中为 excel      更新时间:2023-09-26

我在浏览器端(chrome windows)使用javascript从网页生成并下载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"answers"'n"分隔行,但所有三个结果都是csv:s, excel导入到一行而不是作为网格。我应该如何终止行,让excel识别它作为一个行结束,并开始在新的行上插入数据?

不确定你是否还需要这个问题的答案。但我会张贴我发现的解决方案,因为我遇到了同样的问题。

使用上面的代码,您唯一缺少的是编码由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);
}

希望这对将来再次遇到这个问题的人有所帮助!

尝试用'u2028代替'n'u2029代替'r

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