Javascript 迭代Node.js中CSV文件中的单元格

Javascript 迭代Node.js中CSV文件中的单元格,javascript,node.js,csv,parsing,Javascript,Node.js,Csv,Parsing,我有一个CSV文件:“myCSV.CSV”有两列:“first”和“second” 里面所有的数据都是数字。因此,该文件如下所示: first, second 138901801, 849043027 389023890, 382903205 749029820, 317891093 ... 我想迭代这些数字并对它们执行一些自定义解析,然后将结果存储在数组中 我如何实现以下行为 const parsedData = []; for (const row of file) { parsed

我有一个CSV文件:“myCSV.CSV”有两列:“first”和“second”

里面所有的数据都是数字。因此,该文件如下所示:

first, second
138901801, 849043027
389023890, 382903205
749029820, 317891093
...
我想迭代这些数字并对它们执行一些自定义解析,然后将结果存储在数组中

我如何实现以下行为

const parsedData = [];

for (const row of file) {
  parsedData.push(row[0].toString() + row[1].toString());
}

如果您使用的是用户在浏览器中选择的文件,则需要制作一个文件读取器以响应用户的操作。(见附件。)


但听起来您的服务器上已经有了该文件,在这种情况下,您将使用Node的内置文件系统模块。(见附件。)

如果您只需要模块的
readFile
功能,您需要在文件中使用它,如:

const {readFile} = require("fs");
readFile("myFile.txt", "utf8", (error, textContent) => {
  if(error){ throw error; }
  const parsedData = [];
  for(let row of textContent.split("\n")){
    const rowItems = row.split(",");
    parsedData.push(rowItems[0].toString() + rowItems[1].toString());
  }
}
您可以使用它来处理文本文件,如:

const {readFile} = require("fs");
readFile("myFile.txt", "utf8", (error, textContent) => {
  if(error){ throw error; }
  const parsedData = [];
  for(let row of textContent.split("\n")){
    const rowItems = row.split(",");
    parsedData.push(rowItems[0].toString() + rowItems[1].toString());
  }
}
(见附件)


但是,如果您想直接将CSV作为二进制数据处理(而不是在读取之前转换为文本文件),则需要在调用
readFile
之前添加类似的内容:

const textContent = String.fromCharCode.apply(null, new Uint16Array(buffer));
…使用箭头函数中的
textContent
参数替换为
buffer
参数来处理二进制数据。
(如果
Uint16Array
的大小不正确,则可能是
Uint8Array
。请参阅。)


您可能还会发现这些资源很有用: