web-dev-qa-db-ja.com

Javascriptを使用してローカルテキストファイルを読み取り、行ごとに読み取る方法は?

デモであるhtml + javascriptで作成したWebページがあります。csvファイルからデータを抽出できるように、ローカルのcsvファイルを読み取り、1行ずつ読み取る方法を知りたいです。

52
litaoshen

JQueryなし:

document.getElementById('file').onchange = function(){

  var file = this.files[0];

  var reader = new FileReader();
  reader.onload = function(progressEvent){
    // Entire file
    console.log(this.result);

    // By lines
    var lines = this.result.split('\n');
    for(var line = 0; line < lines.length; line++){
      console.log(lines[line]);
    }
  };
  reader.readAsText(file);
};

HTML:

<input type="file" name="file" id="file">

ファイルフィールドがレンダリングされた後、JavaScriptコードを忘れずに配置してください。

83
juanpastas

ES6を使用すると、JavaScriptが少しきれいになります

handleFiles(input) {

    const file = input.target.files[0];
    const reader = new FileReader();

    reader.onload = (event) => {
        const file = event.target.result;
        const allLines = file.split(/\r\n|\n/);
        // Reading line by line
        allLines.forEach((line) => {
            console.log(line);
        });
    };

    reader.onerror = (event) => {
        alert(event.target.error.name);
    };

    reader.readAsText(file);
}
13
JuJoDi