Yerel metin dosyasını okumak ve satır satır okumak için Javascript nasıl kullanılır?


85

Html + javascript ile hazırlanmış demo bir web sayfam var, yerel bir csv dosyasını nasıl okuyacağımı öğrenmek ve csv dosyasından veri alabilmek için satır satır okumak istiyorum.



2
herhangi bir tarayıcı uyumluluk gereksiniminiz var mı? özellikle ie9 veya daha azını destekliyor musunuz?
sevilmedi


@HunterLarco teşekkür ederim, sorun şu ki sonuçtan her satırı nasıl alacağımı bilmiyorum. Ben reader.readAsText () satır satır okuyabilir yerine I'in tüm verileri döndürür demek
litaoshen

@LukeMcGregor Gereksinim yok, sadece mevcut sürümleri destekleyin Tamam olacak.
litaoshen

Yanıtlar:


117

JQuery olmadan:

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">

Dosya alanı oluşturulduktan sonra javascript kodunuzu koymayı unutmayın.


21
200000 satırım var (şaka değil, bu bir günlük dosyası). Çözümünüzün bunu kapsadığını sanmıyorum, yine de iyi deneme.
Tomáš Zato - Monica'yı eski durumuna getir

Ayrıca, bu çözüm, söz konusu dönüşün (satır besleme) alıntılanan bir alan içinde olup olmadığını işlemez. Tomas'a gelince, daha gelişmiş bir tarayıcınız varsa, "bölme" yapmadan satır satır okumak için bir jeneratör kullanabilirsiniz.
Rahly

5
satırları aldığımız harici dosyanın yolu nerede?
abidinberkay

@ TomášZato madeni 100m hattır. Bu cevabı henüz test etmedim .. Buna nasıl yaklaştınız? Bir örneğe bağlantı çok takdir edilecektir! huanPastas, cevap için +1!
gsamaras

2
@gsamaras Tam olarak hatırlamıyorum ama verileri parça parça okuyan ve her karşılaştığımda olay emmite eden bir akım kullandım \n. Ancak 100m satırla, bunları HTML olarak görüntüleyerek bir tabloyla karşılaşacaksınız.
Tomáš Zato - Monica'yı eski durumuna getir

37

ES6 kullanıldığında javascript biraz daha temiz hale geliyor

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);
}

3
Düzenli ifade ile bölünmüş satırlara oy verdim, bu da bunu yapmanın doğru yolu.
Meysam Feghhi

13
Daha basit regexp:\r?\n
2019

1
Mükemmel bir örnek ve Windows ve Unix tarzı satır sonlarının işlenmesini seviyorum. Teşekkür ederim.
Brad
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.