使用PapaParse在导入时循环遍历多个文件

时间:2016-08-27 00:03:06

标签: javascript input papaparse

我为我的应用程序写了一个小后端,我可以上传csv' s。它需要通过csv并将它们解析为JSON。我正在使用PapaParse,我可以做一个文件。但是我需要上传多个文件并让它们解析。我可以上传文件,但我无法弄清楚如何选择所有文件。

这是我的代码:HTML

//Getting the document by the ID and when something changes it runs the function
document.getElementById("fileToRead").addEventListener("change",function(){
    //creates a var for the first file.



 var files = this.file[0]

       Papa.parse(files, {
       header:true,
       dynamictyping:true,
       complete:function(results){
           console.log(results);
           var data = results.split;
           document.getElementById("editor").innerHTML = data;
       }
       });
    //this prints the value of the evt.target.result (which is another pre-defined JS object that runs with
    //FileReader woo hoo!)  this has to have .innerHTML becuase I have a <p> tag, when it was a <textArea> it had
    // to have .value

  });

这是js文件:

{{1}}

我很确定它只与JS中的第一行有关,只选择文件0但是我尝试了空括号和其他一些东西,它仍然只输出一个对象。

1 个答案:

答案 0 :(得分:0)

好的,我明白了。我对如何遍历所有文档感到困惑,这里是修复它的代码。

document.getElementById("fileToRead").addEventListener("change",function(){
//creates a var for the first file.
//Gets the number to loop through
var input = document.getElementById("fileToRead");
console.log(input.files.length);
for(var i = 0; i < input.files.length; i++){
    var files = input.files[i];
               Papa.parse(files, {
               header:true,
               dynamictyping:true,
               complete:function(results){
                   console.log(results);
                   document.getElementById("editor").innerHTML = "stuff";
               }
               });

1)创建一个名为input的变量来抓取所有文件

2)我console.log它以便我知道我抓住了所有文件,你需要将files.length添加到输入中,因为你正在查找该输入中的所有文件。 files是我们可以使用的预定义单词!

3)然后使用input.files.length循环浏览文件,就像我为console.log所做的那样,因为我知道这很有效。我想我可以创建一个变量,但无论如何。

4)for循环中的var文件与[i]一起使用,因为当for循环遍历时,它将填充[i]的值,它以0开头,因此它将从第一个文档开始,然后通过其余的都没有留下。

5)使用PapaParse浏览文件。

在competition:function(results)部分我正在使用console.log,所以我知道代码在这里。最后一点代码document.getElementByID是因为我想看看它输出的是什么。这当前不起作用,但它确实输出“我在那里的东西。

我希望这有助于其他人尝试做这样的事情。