导出前的Ag-grid角度格式数据 [英] 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);
}
}
);
}
上面有两列的示例:一列带有时间戳,一列带有对象.
Above there's example of two columns: one with timestamp, one with object.
我用于导出为csv的export()
方法:
My export()
method which I use to export as 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而不是日期时间时,例如
However, I have trouble finding how format values before exporting, because here I only get header and field and no value? And when I export my grid to csv instead of datetime I get e.g.
这是时间戳,对于我的对象,我得到
which is timestamp and for my object I get
代替了Tom, Bob, Ben
有人知道如何在导出之前格式化这些值吗?
Does anyone know how to format these values before exporting?
推荐答案
在您的export()
函数中,您将必须添加参数processCellCallback
.
In your export()
function, you will have to add a parameter 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);
}
在示例和文档此处中了解更多.
Read more in the example and docs here.
这篇关于导出前的Ag-grid角度格式数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!