CSV-Dateien mit AngularJS hochladen und herunterladen

Dieser Beitrag zeigt Ihnen, wie Sie CSV-Dateidaten nach AngularJS hochladen, die Daten lesen und anschließend zur Verarbeitung in JSON konvertieren. Anschließend erfahren Sie, wie Sie das Ganze umgekehrt ausführen und einen CSV-Daten-Dump von AngularJS herunterladen.

CSV-Dateien werden aufgrund ihrer Einfachheit bevorzugt. Sie werden auch von vielen Arten von Programmen stark unterstützt und bieten eine einfache Möglichkeit, Tabellenkalkulationsdaten darzustellen.

Voraussetzungen

Bevor Sie mit diesem Lernprogramm beginnen, stellen Sie sicher, dass Node.js auf Ihrem Computer installiert ist. Wenn Sie es noch nicht haben, besuchen Sie die offizielle Website und installieren Sie sie.

Sie sollten auch ein Grundverständnis für die folgenden Technologien besitzen:

  • HTML
  • CSS
  • JavaScript

Wenn Sie bereits Node.js installiert haben, prüfen Sie, ob Sie über die neuesten Versionen von Node und NPM verfügen.

Knoten -v npm -v

CSV-Module in Winkel

Es gibt verschiedene Möglichkeiten, CSV in Angular zu manipulieren. Dazu gehören:

  • Papa Parse: Papa Parse ist ein leistungsstarker CSV-Parser, mit dem CSV-Zeichenfolgen in kleinen und großen Dateien analysiert und wieder in JSON konvertiert werden können. Wir werden diese Bibliothek in diesem Tutorial verwenden.
  • csvtojson: Dies ist ein Knotenpaket, das auch einfach zu verwenden ist.
  • File Reader: Wird verwendet, um den Inhalt von Dateien mit zu lesen Datei oder Klecks Objekte, um die zu lesende Datei anzugeben. Dies ist jedoch kein effizienter Weg, da Sie immer noch alle Zeilen der CSV und dann durchlaufen müssen JSON.stringify die Ergebnisse.

Fertig machen

Unser Ziel ist es, Folgendes tun zu können:

  • Laden Sie eine CSV-Datei auf der Clientseite herunter
  • Laden Sie eine CSV-Datei hoch
  • eine CSV-Datei lesen
  • Konvertieren Sie CSV-Dateidaten zur Verarbeitung in JSON

Unsere Oberfläche sollte ungefähr so ​​aussehen:

Zuerst schreiben wir den HTML-Code für die oben gezeigte Schnittstelle.

Erstellen Sie einen Ordner mit dem Namen Mein Projekt, CD in den Projektordner und erstellen Sie zwei Dateien: home.html und app.js.

mkdir my_project cd my_project touch home.html touch app.js

Da wir das Papa Parse-Modul verwenden werden, besuchen Sie die offizielle Website und laden Sie die Bibliothek herunter. Extrahieren Sie dann den Inhalt und speichern Sie die papaparse.js und papaparse.min.js Dateien in Ihrem Projektordner. Ihre Projektstruktur sollte so aussehen:

mein_projekt / app.js home.html papaparse.js papaparse.min.js

Nachfolgend finden Sie den HTML-Code zum Erstellen unserer Schnittstelle. Speichern Sie es als home.html.

        
BULK TOP UP
  1. Die Excel-Datei sollte drei Spalten enthalten
  2. Die erste Spalte enthält das Referenz
  3. Die zweite Spalte enthält das Vorname
  4. Die dritte Spalte enthält das Nachname
  5. Die zweite Spalte enthält das Geburtsdatum
  6. Die dritte Spalte enthält das Sexvon der Person

Die Spaltenüberschriften sollten sein Referenz ,Vorname ,Nachname,Dob,Sex

Eine Beispieldatei steht zum Download zur Verfügung



Ihre hochgeladene CSV-Datei wird Ihnen in einer Vorschau zur Bestätigung angezeigt



Bestätigen Sie die hochzuladende Datei und klicken Sie unten auf die Schaltfläche Fortfahren

Im obigen Code verwenden wir die ng-app Anweisung zur Definition unserer Anwendung. Wir fügen dann die Bibliotheken AngularJS und jQuery zu unserer Webseite hinzu sowie die restlichen Skriptdateien, d. H. app.js, papaparse.js, und papaparse.min.js.

Wir definieren dann den Controller der Anwendung und binden die HTML-Steuerelemente an die Anwendungsdaten.

Laden Sie eine CSV-Datei herunter

Da wir bereits über eine Schnittstelle mit dem Link verfügen, über den ein Benutzer die CSV-Datei herunterladen kann, schreiben wir jetzt den Angular-Code, der die herunterzuladenden Daten enthält, und binden ihn mit den HTML-Steuerelementen.

Anschließend stellen wir den CSV clientseitig zum Download bereit.

Im app.js, Initialisieren Sie die Angular App und definieren Sie die CsvCtrl Regler.

'streng verwenden'; / * App Module * / var app = angle.module ("myApp", []); 

Definieren Sie als Nächstes die Beispieldaten in JSON und konvertieren Sie sie mithilfe des Moduls Papa Parse in eine CSV-Datei.

app.controller ("CsvCtrl", ["$ scope", "$ q") Funktion ($ scope, $ q) var clearAlerts = Funktion () $ scope.error = , $ scope.warning = null $ scope.download = function () var a = document.createElement ("a"); var json_pre = '["Referenz": "1", "Vorname": "Lauri", "Nachname": "Amerman "," Dob ":" 1980 "," Sex ":" F ", " Referenz ":" 2 "," Vorname ":" Rebbecca "," Nachname ":" Bellon "," Dob ":" 1977 "," Sex ":" F ", " Reference ":" 3 "," Vorname ":" Stanley "," Nachname ":" Benton "," Dob ":" 1984 "," Sex ":" M "] 'var csv = Papa.unparse (json_pre); if (window.navigator.msSaveOrOpenBlob) var blob = neuer Blob ([decodeURIComponent (encodeURI (csv)))], type:" text / csv; charset = utf -8; "); navigator.msSaveBlob (blob, 'sample.csv'); else a.href = 'data: attachment / csv; charset = utf-8,' + encodeURI (csv); a.target = '_blank'; a.download = 'sample.csv'; document.body.appendChild (a); a.click ();]);

Hochladen und Lesen einer CSV-Datei

Hier ist die Angular-Funktion, mit der eine CSV-Datei hochgeladen und gelesen wird.

app.controller ("CsvCtrl", ["$ scope", "$ q", Funktion ($ scope, $ q) // ... der Rest des Codes // Upload und Lesen der CSV-Funktion $ scope.submitForm = function ( form) clearAlerts (); var Dateiname = document.getElementById ("bulkDirectFile"); if (Dateiname.Wert.length < 1 ) ($scope.warning = "Please upload a file");  else  $scope.title = "Confirm file"; var file = filename.files[0]; console.log(file) var fileSize = 0; if (filename.files[0])  var reader = new FileReader(); reader.onload = function (e)  var table = $("") .css ('width', '100%'); var row = e.target.result.split (" \ n "); für (var i = 0; i < rows.length; i++)  var row = $(""); var Zellen = Zeilen [i] .split (", "); for (var j = 0; j < cells.length; j++)  var cell = $("
") .css ('border', '1px solid black'); cell.html (cells [j]); row.append (cell); table.append (row); $ (" # dvCSV "). html ("); $ ("# dvCSV"). anhängen (Tabelle); reader.readAsText (dateiname.files [0]); falsch zurückgeben; ]);

Hier bestätigen wir, ob die CSV gültig und nicht leer ist. Wenn sie leer ist oder keine CSV-Datei hochgeladen wurde, erhalten Sie eine Warnmeldung: "Bitte laden Sie eine Datei hoch." Wenn die CSV gültig ist, konvertieren wir die Daten in ein Tabellenformat und präsentieren sie wie unten gezeigt.

Konvertieren Sie eine CSV-Datei in JSON

Im letzten Teil dieses Lernprogramms werden die CSV-Daten in das JSON-Format (ein Formular, das von einer API verwendet werden kann) konvertiert. Nachfolgend finden Sie die Funktion, mit der die CSV-Daten in JSON konvertiert werden. Wir werden die Daten nur auf der Konsole ausdrucken, da uns keine API für die Verwendung der Daten zur Verfügung steht.

app.controller ("CsvCtrl", ["$ scope", "$ q"), Funktion ($ scope, $ q) //… // In JSON-Funktion konvertieren $ scope.add = function () var Table = document .getElementById ('Table'); var file = document.getElementById ("bulkDirectFile"). files [0]; $ ('. loading'). show (); var allResults = []; Papa.parse (file,  download: true, header: true, skipEmptyLines: true, Fehler: function (err, file, inputElem, reason) , complete: function (Ergebnisse) allResults.push (results.data); console.log (results.data ));]);

In der obigen Funktion rufen wir die CSV-Datei ab und konvertieren sie mit Papa Parse in JSON. Der vollständige Code in app.js wird unten gezeigt.

Fazit

In diesem Beitrag haben Sie gesehen, wie Sie CSV-Daten hochladen und herunterladen und wie Sie CSV-Daten in JSON analysieren und analysieren können.

Ich hoffe, dieses Tutorial hat Ihnen geholfen zu verstehen, wie Sie CSV-Dateien mit dem Modul Papa Parse bearbeiten und wie leistungsfähig diese Bibliothek ist. Experimentieren Sie mit größeren Dateien, um die volle Funktionalität der Papa Parse-Bibliothek zu sehen.