读取不在meteor中工作的csv文件

时间:2014-03-13 05:56:59

标签: meteor

在我的meteor应用程序中,我需要导入csv文件并读取每个项目的特定颜色。 我的代码是

var fs = Npm.require('fs');
         chroot = Meteor.chroot || 'uploads';
         var path = chroot + (path ? '/' + path + '/' : '/');
         var content = fs.readFileSync('../../../../../' + path + file_name, "utf-8", function read(err, data) {
          if (err) {
             throw err;
            }

       }); 

通过这个我得到我想要的。但是在某些情况下,csv文件就像

name,email,phone,designation,userid
name1,name@gmail.com,manager,LI-501
name2,name2@gmail.com,"HR,Senior manager",LI-502

我需要从每个coloumn(即第3项)中检索用户ID。 但是对于第二个条目,有一个额外的逗号用于指定,因此coloumn数字会改变。那么哪个是读取csv文件的完美方式?

2 个答案:

答案 0 :(得分:0)

没有必要重新发明轮子,已经为node.js完成了CSV解析器。 This one看起来是最可靠的。如果你还没有这样做,你可以使用npm Meteor package在Meteor中使用npm包。

答案 1 :(得分:0)

我在HTML输入元素上使用了Ink filepicker的read方法来返回CSV文件的内容:

https://developers.inkfilepicker.com/docs/web/#read

然后我将内容传递给jQuery CSV解析器的toObjects方法,有人在这里编写了一个包:

https://atmospherejs.com/package/jquery-csv

这使我将CSV内容转换为JS对象,然后我可以根据需要进行操作。 jQuery CSV解析器中还有一个toArray方法。

您不必使用Ink filepicker来获取文件的内容,但对我来说这是一个不错的选择,因为我已经在使用它了。