[英]Ag-grid angular format data before exporting
我有要导出的网格:
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); } } ); }
上面有两列的示例:一列带有时间戳,一列带有对象。
我用来导出为 csv 的export()
方法:
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 而不是日期时间时,我得到了例如
而不是有Tom, Bob, Ben
有谁知道如何在导出之前格式化这些值?
在您的export()
函数中,您必须添加一个参数processCellCallback
。
像这样的东西:
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';
params.processCellCallback = function(cellParams) {
if(cellParams && cellParams.column.colId === 'yourTimestampfield') {
return this.formatter; //apply your timestamp formatter
} else if(cellParams && cellParams.column.colId === 'yourObjectfield') {
return this.formatter; //apply your object formatter
} else
return cellParams.value // no formatting
}
this.grid.api.exportDataAsCsv(params);
}
在此处阅读示例和文档中的更多内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.