2016-01-12 23 views
0

我是一名初學者程序員。從上傳的CSV文件創建數據表

我使用jQuery Data Table with Bootstrap來創建表。

我需要從上傳的CSV文件創建表。

有沒有什麼辦法可以爲json創建csv數據?

'submit form': function (event){ 
    console.log("Submitting form"); 
    event.preventDefault(); 
    var frm = document.getElementById('frm'); 
    var csvdata = new FormData(event.target); 
    console.log("data:: " + csvdata); 

    // Code to create dataTable out of csv 
    // $('#mytable').DataTable(); 
} 

我該怎麼辦?

+1

如果您上傳的文件,並存儲在服務器上,那麼你可以改變CSV那裏和返回JSON。如果你想在客戶端完成所有操作,那麼你可以使用[FileReader類](https://developer.mozilla.org/en/docs/Web/API/FileReader)。 –

+0

欣賞如果你提供一些代碼片段@RoryMcCrossan – HusNain

+0

你知道,這是一個可愛的問題,所以我打算回到你身邊 - 但同時你不能在沒有服務器端的情況下做到這一點代碼......除非你在頁面本身上執行,這意味着不會上傳csv,但可能會將csv文件粘貼到textarea中。這會有幫助嗎? – annoyingmouse

回答

1

正如羅裏McCrossan指出的FileReader方法效果真的well也:

$("#fileinput").on("change", function(evt) { 
    var f = evt.target.files[0]; 
    if (f) { 
     var r = new FileReader(); 
     r.onload = function(e) { 
      table.rows.add($.csv.toObjects(e.target.result)).draw(); 
     } 
     r.readAsText(f); 
    } else { 
     alert("Failed to load file"); 
    } 
}); 
+0

太棒了!謝謝@annoyinmouse – HusNain

+0

工程就像一個魅力。謝謝! – OneLazy

1

而不是上傳csv到服務器,過程中有那麼一個DataTable你可以進行展示,如果你有機會獲得原始數據資料,你知道它的結構,使cvs而不觸及服務器。

example使用jquery-csv解析textarea的內容並填充表格。相關功能是這樣的:

$("#populateTable").click(function(){ 
    table.rows.add($.csv.toObjects($("#csvImport").val())).draw(); 
}); 

希望有所幫助。