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.
npm install generate-csv-from-array
- 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.
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
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)
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]
wheregetter
is either a lodashget
path or a mapping function.
- A lodash
delimiter
(optional): String specifying the delimiter used to separate columns (default:,
).