Simple directive that turns arrays and objects into downloadable CSV files

  • ng-csv

Downloads in past


5731160.3.68 years ago10 years agoMinified + gzip package size for ng-csv in KB


ngCsv - Export to CSV using AngularJS
An AngularJS simple directive that turns arrays and objects into downloadable CSV files,
Build Status


  • angular.js (of course!), any version starting with 1
  • angular-sanitize.js, any version starting with 1

How to get it ?

Manual Download

Download the from here


bower install ng-csv


npm install ng-csv


ng-csv is available at cdnjs


  1. Add ng-csv.min.js to your main file (index.html).
please also make sure you're adding angular-sanitize.min.js.
  1. Set ngCsv as a dependency in your module
```javascript var myapp = angular.module('myapp', 'ngSanitize', 'ngCsv') ```
  1. Add ng-csv directive to the wanted element, example:
```html Export ```

ngCsv attributes

  • ng-csv: The data array - Could be an expression, a value or a promise.
  • filename: The filename that will be stored on the user's computer
  • csv-header: If provided, would use this attribute to create a header row
'Field A', 'Field B', 'Field C'" filename="test.csv">Export ```
  • csv-column-order: Defines the column order to be set when creating the body of the CSV (may be according to the csv-headers) - use it when you have an array of objects.
  • field-separator: Defines the field separator character (default is ,)
  • decimal-separator: Defines the decimal separator character (default is .). If set to "locale", it uses the language sensitive representation of the number.
  • text-delimiter: If provided, will use this characters to "escape" fields, otherwise will use double quotes as deafult
  • quote-strings: If provided, will force escaping of every string field.
  • lazy-load: If defined and set to true, ngCsv will generate the data string only on demand. See the lazyload example for more details.
  • add-bom: Add the Byte Order Mark, use this option if you are getting an unexpected char when opening the file on any windows App.
  • charset: Defines the charset of the downloadable Csv file. Default is "utf-8".
  • csv-label: Defines whether or not using keys as csv column value (default is false).


You can check out this live example here:
For lazy load example using promises see this example:

Supported Browsers

| Browser | Filenames | | --------------- | ------------- | | Firefox 20+ | Yes | | Chrome 14+ | Yes | | Safari | No | | IE 10+ | Yes |
Bitdeli Badge