Skip to content

A utility to convert an array of data into CSV format allowing you to define each column either through a lodash `get` path or a custom mapping function.

Notifications You must be signed in to change notification settings

veswill3/generate-csv-from-array

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

generate-csv-from-array

A utility to convert an array of data into CSV format allowing you to define each column either through a lodash get path or a custom mapping function.

Installation

npm install generate-csv-from-array

Features

  • Column Mapping: Use lodash get paths or custom functions to define how to extract column data.
  • Custom Delimiter: Customize the delimiter for CSV generation (default: ,).
  • Data Sanitization: data containing quotes or the delimiter will be wrapped and escaped.

Example

import generateCSVFromArray from './src/generateCSVFromArray';
// or
// const generateCSVFromArray = require('generate-csv-from-array');

const people = [
  {
    first: 'John',
    last: 'Doe',
    age: 30,
    contact: {
      email: '[email protected]',
    },
  },
  {
    first: 'Jane',
    last: 'Doe',
    age: 25,
    contact: {
      telephone: '(555) 867-5309',
      email: '[email protected]',
    },
  },
];

const csv = generateCSVFromArray(people, [
  ['name', (person) => `${person.first} ${person.last}`],
  'age',
  'contact.email', // nested lookup
  ['phone', 'contact.telephone'], // custom name
]);

console.log(csv);

output

name,age,contact.email,phone
John Doe,30,[email protected],
Jane Doe,25,[email protected],(555) 867-5309

API

generateCSVFromArray(array, paths, [delimiter])

Generate CSV from an array of data. Configure each column to use either a lodash get path or a mapping function. Optionally you can specify the name of the column (required if using the map fn)

Parameters

  • array: Array of objects to be converted into CSV.
  • paths: Array of column configurations. Each element can be:
    • A lodash get path string (e.g., 'user.name').
    • A tuple of [columName, getter] where getter is either a lodash get path or a mapping function.
  • delimiter (optional): String specifying the delimiter used to separate columns (default: ,).

About

A utility to convert an array of data into CSV format allowing you to define each column either through a lodash `get` path or a custom mapping function.

Resources

Stars

Watchers

Forks

Packages

No packages published