У меня есть сетка, которую я хочу экспортировать:
initializeColumnDefs() {
this.columnDefs = [];
this.columnDefs.push({
headerName: 'time,
field: 'completedTimestamp',
cellRenderer: (params: any) => {
if (params.data.isMomentarily)
return '';
return DatagridComponent.DefaultDatetimeCellRenderer(params);
},
comparator: (valueA: number, valueB: number) => {
return DatagridComponent.DefaultDatetimeCellComparator(valueA, valueB);
}
},
{
headerName: 'people',
field: 'people',
cellRenderer: (params: any) => {
if (!params || !params.value || params.value.length <= 0)
return '';
let titles = '';
params.value.forEach(element => {
if (element.name) {
titles += element.name + ',';
}
});
return titles.substring(0, titles.length - 1);
}
}
);
}
Выше приведен пример двух столбцов: один с отметкой времени, другой с объектом.
Мой export()
метод, который я использую для экспорта в формате csv:
export() {
let header = this.columnDefs.map(columnDef => {
let id = columnDef.field || columnDef.colId || columnDef.value;
let headerName = columnDef.headerName;
return headerName;
});
let a: any;
let params: any = {
fileName: 'export.csv',
columnSeparator: ';',
skipHeader: true,
columnKeys: this.columnDefs.map(c => c.field || c.colId).filter(c => !!c)
};
params.customHeader = header.join(params.columnSeparator) + '\n';
this.grid.api.exportDataAsCsv(params);
}
Однако у меня возникают проблемы с поиском форматирования значений перед экспортом, потому что здесь я получаю только заголовок и поле, а не значение?
И когда я экспортирую свою сетку в csv вместо datetime, я получаю, например,
которая является меткой времени и для моего объекта я получаю
Вместо того, чтобы Tom, Bob, Ben
Кто-нибудь знает, как отформатировать эти значения перед экспортом?