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 6 导出功能的 ag-grid 20

如何在 Angular 项目中自动刷新 ag-grid 中的单元格

ag-grid angular 5 导出隐藏,列

如何使用 ag-grid 导出到具有 Angular 6 的大数据(50,000 行)的 excel 功能(内存不足错误)?

Angular 单元测试中未定义的 ag-grid API

在 AG-GRID Angular 中插入单元格断线