47 lines
984 B
TypeScript
47 lines
984 B
TypeScript
import { ExportToCsv } from 'export-to-csv'
|
|
import { notify } from './notifications'
|
|
|
|
/**
|
|
* Function to export data to CSV file.
|
|
*
|
|
* @param dataToExport Array of objects for exporting
|
|
* @param filename Name of exported file
|
|
* @param headers Column headders
|
|
* @param t Translation function since it cannot be called here
|
|
*/
|
|
export function exportDataToCSV(
|
|
dataToExport: Array<any>,
|
|
title: string,
|
|
headers: Array<string>,
|
|
t: any
|
|
) {
|
|
if (dataToExport.length == 0) {
|
|
notify({
|
|
title: t('export-data-empty'),
|
|
description: '',
|
|
type: 'info',
|
|
})
|
|
return
|
|
}
|
|
|
|
const options = {
|
|
fieldSeparator: ',',
|
|
quoteStrings: '"',
|
|
decimalSeparator: '.',
|
|
showLabels: true,
|
|
showTitle: false,
|
|
filename: title,
|
|
useTextFile: false,
|
|
useBom: true,
|
|
headers: headers,
|
|
}
|
|
|
|
const exporter = new ExportToCsv(options)
|
|
exporter.generateCsv(dataToExport)
|
|
|
|
notify({
|
|
title: t('export-data-success'),
|
|
description: '',
|
|
})
|
|
}
|