Angular Ag-grid(值获取器不导出单元格的渲染值)
Posted
技术标签:
【中文标题】Angular Ag-grid(值获取器不导出单元格的渲染值)【英文标题】:Angular Ag-grid(Value Getter not exporting rendered value for the cell) 【发布时间】:2021-08-11 03:18:44 【问题描述】:我正在使用角度 ag-grid,并且我有一个列定义如下。
columnDefs=[
field:'rate' , sortable:true, filter:true, headerName: " RATE", valueGetter: this.rateValueGetter
rateValueGetter 函数如下。
rateValueGetter(params): String
if(params.colDef.field=="rate")
if(params.data.rate.includes('1')) return 'Y';
if(params.colDef.field=="rate")
if(params.data.rate.includes('0')) return 'N';
上面的函数本质上是,如果数据库中的rate字段为1,则在前端渲染Y,否则为0,则渲染N。
当我尝试使用第三方库 exceljs 导出网格数据时出现问题,它不会导出渲染值(Y 或 N),而是导出原始数据(1 或 0)...如何我让它导出渲染值吗?据我了解,valuegetter 实际上并没有改变数据,它只是在屏幕上呈现值,所以当我试图导出数据时,它没有得到呈现的值。反正有没有获得渲染价值?谢谢。下面是我的导出函数。
btnExport()
let filtereddata=[];
this.gridApi.forEachNodeAfterFilterAndSort(grd=>
filtereddata.push(grd.data);
);
this.exportService.exportDataAsExcel(filtereddata, this.columnDefs, "filename");
【问题讨论】:
【参考方案1】:您可以使用map
代替filtereddata
在导出前转换数据。
例子:
filtereddata.map(data =>
return
...data,
rate: data.rate.includes('1') ? 'Y' : 'N'
)
【讨论】:
以上是关于Angular Ag-grid(值获取器不导出单元格的渲染值)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Angular 项目中自动刷新 ag-grid 中的单元格
如何使用 ag-grid 导出到具有 Angular 6 的大数据(50,000 行)的 excel 功能(内存不足错误)?