2016-11-30 45 views
0

我需要一些帮助,将使用JavaScript代码将上传的csv文件内容转换为数组。JavaScript:将上传的CSV文件内容转换为阵列

以下是我迄今所做的:

我有一个CSV文件,它包含了所有的ClientID的列表例如

ClientIDs 
1 
2 
3 

使用下面的HTML代码,我上传的文件

<form id = "FileUpload" method="post" enctype="multipart/form-data"> 
    <div> <p><p> 
     <b>Select file containing all clientIDs:</b> 
     <input type="file" id="FileUpload" name="csv"/> 
     <input type="hidden" name="action" value="upload"/> 
     <input type="submit" name="FileUpload" value="Upload File"/> 
    </div> 
</form> 

现在,我卡在一部分。读取和转换文件内容的JS

if(document.getElementById("FileUpload").value != "") { 
    console.log("The file was uploaded"); 
    //Process the file and convert its contents to array 
} 

有人可以帮忙吗?

在此先感谢。

+0

你可能想看看这里的一些代码示例:HTTPS ://developer.mozilla.org/en-US/docs/Using_files_from_web_applications – fet

回答

1

假设的是由新线分离的ID,你可以做这样的事情:

var reader = new FileReader(); 

reader.onload = function (e) { 
    var arr = e.target.result.split("\n"); 
    // Continue processing... 
}; 

reader.readAsText(document.getElementById("FileUpload").files[0]); 

参见:https://developer.mozilla.org/en/docs/Web/API/FileReader

+0

感谢您的评论安德烈..我必须做的唯一改变是使用readAsText而不是readAsDataURL。 除此之外,它的所有工作现在。 –

+0

你是对的,我编辑了我的答案以反映这一点。 –

+0

嗨安德烈,另一个问题,答案工作正常,并在onload函数内显示正确的值,但是当我尝试打印该函数外的值时,该数组仍然显示空值。 例如reader.onload =函数(e)中{ uploadedClientList = e.target.result.split( “\ n”); 的console.log( “带1:” + uploadedClientList); }; 的console.log( “带2:” + uploadedClientList); 以1作品正常,但采取2仍然是空的 –