使用原生 JavaScript 处理本地 CSV 文件

Process a local CSV file with native JavaScript

我是新手。

我正在尝试建立一个关于金融的网站。 我在 python 中编写了一个 scrypt 以从 API 获取股票数据,创建了我自己的市场指数并将我的指数数据导出到 CSV 文件中。这很重要,因为我需要创建一个历史记录并观察它的演变(脚本将 运行 在 VM 中自动添加数据)。 现阶段没问题。

现在,我的目的是在 JS 脚本中读取和处理我的 CSV 文件 将数据存储到数组中(graphJS 使用数组来显示图形,这就是我的目的想用)。

我只找到了使用 HTML(用户在网站上导入 CSV,我不需要)或 JSQuery(我从未使用过)的解决方案

我正在寻找本机 JavaScript 解决方案。一开始,我只是想在 console.log() 中显示来自我的 CSV 的数据。并使用“for”循环,使用“.push”将数据迭代到数组中。但我会在控制台成功显示我的文件后执行此操作。

我的代码不起作用,有人可以帮助我吗?

const csvLocalFile = "file.csv";
    
const csv = csvLocalFile.files[0];
const reader = new FileReader();
    
reader.readAsText(csv);
    
TypeError: Cannot read properties of undefined (reading '0')

问题是您正试图从字符串类型的变量访问文件内容。 您的代码所做的是尝试引用此字符串中的元素,就像不存在的映射一样。给出错误。 同样在代码中,它只创建一个内容为 file.csv 的新变量,并不实际存储文件。 要实际获取 CSV 的内容:

var filecontent
// 
var openFile = function(event) {
    var input = event.target;
    var reader = new FileReader();
    reader.onload = function(){
      var text = reader.result;
      filecontent = text.replace("","")
    };
    reader.readAsText(input.files[0]);
  };

在你的 HTML

<input type="file"onchange="openFile(event)">

您的 CSV 内容将存储在变量中 filecontent

编辑:非文件上传类型

let obj = await (await fetch('file.csv')).text();

这包含您的 CSV。