2016-07-27 123 views
-2

根據反饋,我的原始問題沒有意義。 試圖查看是否有另一種方式來讀取Papa解析的CSV。如何使用純Javascript解析CSV

我當前的代碼:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
<script src="./papaparse.min.js"></script> 

<script> 
    var data; 

// Target first (and only) file selected 
    function handleFileSelect(evt) { 
    var file = evt.target.files[0]; 

// Parse the file 
    Papa.parse(file, { 
     header: true, 
     download: true, 
     dynamicTyping: true, 
     complete: function(results) { 
     data = results; 
     console.log(data); 
     } 
    }); 
    } 

// Run handleFileSelect function when document is ready 
    $(document).ready(function(){ 
    $("#testCsv").change(handleFileSelect); 
    }); 
</script> 

<!--File button to upload file--> 
<input type="file" id="testCsv" name="files"/> 

編輯:顯然,我需要根據向下票做一些更多的研究。對不起,這個東西是全新的。我的一次新的嘗試:

var data; 

function parseCSV(file) { 
    Papa.parse(file, { 
     header: true, 
     download: true, 
     dynamicTyping: true, 
     complete: function(results) { 
      data = results; 
      console.log(results); // results appear in dev console 
     } 
    }); 
} 
parseCSV(document.getElementById("testCSV").files[0]); 

返回一個錯誤:

ReferenceError: document is not defined 

做更多的研究。

+2

我在該代碼中看到您使用jQuery的唯一部分是將更改處理程序附加到元素的位置。因此,研究如何在「純」JS中添加事件處理程序。 – CBroe

+0

*「... with pure Javascript」*關於使用jQuery或沒有與JavaScript的「純度」有關的任何內容都沒有。如果你想在沒有任何庫的情況下做到這一點,你要問的是如何用DOM API來做到這一點。 jQuery和DOM API版本都是「純粹的」JavaScript。 –

+0

好吧,顯然我對JQuery一無所知,需要做更多的研究。對於web開發人員來說,還是很新的,謝謝你的迴應。 – FF5Ninja

回答

2

幾乎沒有jQuery在那裏被使用。你使用jQuery的所有東西都是在運行代碼之前等待DOM加載,然後連接事件處理程序。

您可以在關閉</body>標記之前通過簡單地將腳本標記移動到HTML末尾來執行第一個操作(等待)。

您可以通過使用addEventListener做任何含糊現代瀏覽器的第二個:

document.getElementById("testCsv").addEventListener("change", handleFileSelect, false); 

如果您需要支持過時的瀏覽器IE8一樣沒有addEventListener,或架着自己,更現代的瀏覽器就像過時的瀏覽器一樣(IE9-IE11),this answer有一個功能,您可以使用它來使用addEventListener或舊的MS特定的attachEvent

-2

編寫您自己的解析函數。 該函數應該接受一個輸入字符串(CSV內容),並將其拆分爲','字符/字符串。

閱讀第一行(直到行尾&回車)。這是你的專欄。 所有其他行都是您的數據。

有意義嗎?

+0

它非常容易混淆寫入,但現在問題似乎並沒有要求不使用'Papa.parse'函數。 *(不是我的DV)* –

+0

除了CVS文件不需要使用','字符作爲OP的分隔符(特別是在窗口中)之外,還不清楚是否需要用「純粹」JavaScript編寫自己的函數,或者只是擺脫小jQuery的一部分。 – empiric

+0

我的理解是CSV以逗號分隔。這在Windows上有何不同? – AlvinfromDiaspar