Skip to main content

CSV

The CSV provider exports data using json-2-csv.

Provider arguments

This provider is selected when type is csv.

Required fields

FieldTypeRequiredNotes
type'csv'✅ YesMust be csv.
dataArray<object>✅ YesArray of rows (objects).

options (optional)

FieldTypeRequiredDefaultNotes
options.headersstring[]❌ NoColumn order / keys list. If not provided, the provider uses the object keys.
options.headersMapRecord<string,string>❌ NoMaps field keys to header titles.
options.delimiterstring❌ No,CSV field delimiter.
options.quotestring❌ NoQuote/wrap character (passed to json-2-csv).
options.encodingBufferEncoding❌ Noutf-8Encoding used when creating the output buffer.

Example

export.service.ts
import { Injectable } from '@nestjs/common';
import { DataExporterService } from 'nestjs-export-module';

@Injectable()
export class ExportService {
constructor(private readonly exporter: DataExporterService) {}

async exportCsv(rows: Array<object>) {
return this.exporter.exportAsync({
type: 'csv',
data: rows,
options: {
headers: ['id', 'name', 'email'],
headersMap: { id: 'ID', name: 'Name', email: 'Email' },
delimiter: ',',
encoding: 'utf-8',
},
});
}
}

Notes

  • Suitable for simple tabular exports.
  • This provider returns { mimeType: 'text/csv', extension: 'csv', data: Buffer }.