1.1.0 • Published 6 years ago

angular-csv-parser v1.1.0

Weekly downloads
11
License
MIT
Repository
github
Last release
6 years ago

angular-csv-parser

An angularjs service with methods to turn strings representing CSV files into arrays of objects and vice-versa.

Use

Include the angular-csv-parser.js file into your project by doing either

require("angular-csv-parser");

or

<script src="angular-csv-parser.js"></script>

Parsing

Use parse to convert a string containing a valid CSV string into an array of objects.

angular.module("my-module", ["angular-csv-parser"])
  .controller("MyController", ["CSVParser", function (CSVParser) {
    let string = "header1,header2,header3\n"
               + "value 1,value 2,value 3\n"
               + "value 4,value 5,value 6";

    let result = CSVParser.parse(string);

    // result is
    // [{
    //   header1: "value 1",
    //   header2: "value 2",
    //   header2: "value 3",
    // },{
    //   header1: "value 4",
    //   header2: "value 5",
    //   header2: "value 6",
    // }]
});

CSVfiying

Use csvify to convert an array of objects into a string in CSV format.

angular.module("my-module", ["angular-csv-parser"])
  .controller("MyController", ["CSVParser", function (CSVParser) {
    let array = [{
      header1: "value 1",
      header2: "value 2",
      header2: "value 3",
    },{
      header1: "value 4",
      header2: "value 5",
      header2: "value 6",
    }];

    let string = CSVParser.csvify(array);

    // string is "header1,header2,header3\n"
    //         + "value 1,value 2,value 3\n"
    //         + "value 4,value 5,value 6";
});

Every object in the array must have the same attribute names.

If you want to create a CSV file with only a header, you can use csvifyEmpty

angular.module("my-module", ["angular-csv-parser"])
  .controller("MyController", ["CSVParser", function (CSVParser) {
    let headers = ["header1", "header2", "header3"];

    let string = CSVParser.csvify(array);

    // string is "header1,header2,header3"
});

Use matrixToCSV to convert an arbitrary matrix into a CSV string

angular.module("my-module", ["angular-csv-parser"])
  .controller("MyController", ["CSVParser", function (CSVParser) {
    let matrix = [["uno", "dos", "tres"],
                  [1, 2, 3],
                  ["a"]];

    let string = CSVParser.matrixToCSV(matrix);

    // string is "uno,dos,tres\n"
    //         + "1,2,3\n"
    //         + "a\n";
});

Testing

Single run

npm test

Continuous

karma start