首页 > 解决方案 > 如何从 javascript 中的本地 .csv 文件中读取以填充字符串数组?

问题描述

我有一个 CSV 文件,每行有 100 个名称。我想创建一个包含每个名称的数组。目前,我的 CSV 文件如下所示:

Names
Bob
Joe
Tim
Allan 

我想按如下方式填充数组:

const csv = require('csv-parser');
const fs = require('fs');    
const names= [];
fs.createReadStream('./Names.csv')
  .pipe(csv())
  .on('data', (data) => names.push(data.Names))
  .on('error', (error) => loggingService.getDefaultLogger().error(error))
  .on('end', () => loggingService.getDefaultLogger().info("Array of Names:" + names));

使用我创建的日志服务,我可以看到 CSV 中的所有名称。当我执行 console.log(names) 时,我得到一个空数组。可能有人知道这是为什么吗?更具体地说,有没有更好的方法从 CSV 文件中读取,以便我可以用该文件的内容填充字符串数组,每行 1 个数组条目作为字符串?

标签: javascriptcsvfsread.csv

解决方案


可能有效,但不确定。

编辑:是的,工作就像一个魅力。

const fs = require('fs');

let Names = [];

fs.readFile('./names.csv', 'utf8', (err, dat) => {
  if(err)
    console.error("Error while opening file");

  Names = String(dat).split('\n');
});

推荐阅读