2014-02-28 50 views
0

我使用下面的jsfiddle代碼來分離代碼來創建csv file.It工作正常,除非在我的列文本中有逗號。如何更改分隔符?如何將「逗號」分隔符更改爲blob csv中的其他內容?

http://jsfiddle.net/5KRf6/3/

function makeCSV() { 
    var csv = ""; 
    $("table").find("tr").each(function() { 
     var sep = ""; 
     $(this).find("input").each(function() { 
      csv += sep + $(this).val(); 
      sep = ","; 
     }); 
     csv += "\n"; 
    }); 
    $("#csv").text(csv); 

    window.URL = window.URL || window.webkiURL; 
    var blob = new Blob([csv]); 
    var blobURL = window.URL.createObjectURL(blob); 
    $("#downloadLink").html(""); 
    $("<a></a>"). 
    attr("href", blobURL). 
    attr("download", "data.csv"). 
    text("Download Data"). 
    appendTo('#downloadLink'); 
} 

回答

-1

逃生用此函數的值:

function escapeVal(v) { 
    return '"' + v.replace('"', '""') + '"'; 
} 

另外

sep + escapeVal($(this).val()); 

http://jsfiddle.net/5KRf6/51/

+0

解決方案如果您在爲他們使用不同區域設置的國際公司工作,那麼您提供的信息不是很好。 – GuyT

0

的soluti on就是用sep=;\n開始你生成的CSV。

樣本CSV看起來像:

sep=; "Product family";"Product type" "SOJA";"product_type"

在你的代碼必須改變兩件事情,使工作。

首先將var sep = "";更改爲var sep = "sep=;\n";。你有你的分隔符更改爲;sep = ",";必須是sep = ";";

http://jsfiddle.net/GuyT/5KRf6/60/

0

我的BOLB數據更改爲字符串,這樣你就可以改變一切「」:

 const data = ["a", "b", "c"]; 
     const exportData = data.toString().replace(/,/g, '\n'); 
     const blob = new Blob([exportData], {type: 'text/csv;charset=utf-8;'}); 
     const link = document.createElement("a"); 
     link.href = URL.createObjectURL(blob); 
     link.setAttribute('visibility', 'hidden'); 
     link.download = 'test.csv'; 
     document.body.appendChild(link); 
     link.click(); 
     document.body.removeChild(link); 
相關問題