2015-07-28 2 views
0

Я пытаюсь экспортировать данные массива в файл csv, который отлично работает, если у него нет строки разрыва («\ n»). Я надеюсь, что он поддержит линию прорыва в одной ячейке, возможно ли это?Как поддерживать « n» при экспорте файла csv с помощью javascript

Я попытался заменить \ п в «\ п» или «„\ п“», но он не работает

функция Я использую:

function arrayToCSVConvertor(arrData, ReportTitle) { 
    var CSV=''; 

    arrData.forEach(function(infoArray, index){ 
     var dataString = infoArray.join(","); 
     //dataString= dataString.split('\n').join('\\n');//Here, need something to suport "\n" 
     CSV += dataString+ "\n"; 
    }); 

    if (CSV == '') { 
     alert("Invalid data"); 
     return; 
    } 

    //create a link and click then remove 
    var link = document.createElement("a"); 
    link.id="lnkDwnldLnk"; 

    //this part will append the anchor tag and remove it after automatic click 
    document.body.appendChild(link); 

    var csv = CSV; 
/* window.open(encodeURI(csv));*/ 

    var blob = new Blob([csv], { type: 'text/csv' }); 
    //var csvUrl = window.webkitURL.createObjectURL(blob); 
    var csvUrl = createObjectURL(blob); 

    var filename = ReportTitle+'.csv'; 

    if(navigator.msSaveBlob){//IE 10 
     return navigator.msSaveBlob(blob, filename); 
    }else{ 
     $("#lnkDwnldLnk") 
      .attr({ 
       'download': filename, 
       'href': csvUrl 
      }); 
     $('#lnkDwnldLnk')[0].click(); 
     document.body.removeChild(link); 
    } 
} 

PS: У меня есть китайские слова внутри массив

+0

Зависит от варианта ["CSV"] (https://en.wikipedia.org/wiki/Comm-separated_values). – user2864740

+0

Например: http://stackoverflow.com/questions/1241220/generating-csv-file-for-excel-how-to-have-a-newline-inside-a-value (также включает в себя target/host - но снова , см. конкретные правила варианта) – user2864740

ответ

0

Предлагаю избегать боли при работе с CSV напрямую, и все это мало вариантов, и просто используйте некоторую библиотеку, например Papa Parse, чтобы справиться с этой работой.

В принципе, новая линия будет использоваться в пределах значения должны быть \n и новую строку, чтобы закончить запись должна быть \r\n но @ user2864740 прокомментировал результаты зависят от кодировки файла и где вы собираетесь чтобы открыть его.

+0

Мне нужен массив, а не JSON, могу ли я быть примером для массива? – Jaskey

+0

PapaParse принимает массив массивов, а также входные данные, проверьте [документацию] (http://papaparse.com/docs#json-to-csv). –

Смежные вопросы