ag-grid - 导出到 Excel/CSV 时定义自定义列标题值

问题描述 投票:0回答:1

我在我的应用程序中使用ag-grid,在网格顶部我提供了2个按钮“下载Excel”和“下载CSV”,当用户单击任何按钮时,网格中的数据应该下载到相应的文件格式。

我使用 Angular 创建了一个函数,当用户单击“下载 Excel”按钮时会触发该函数。

downExcelFile()
{
   var params = {
       columnKeys: ['firstName', 'lastName', 'email', 'mobile', 'email'],
       allColumns: false,
       skipHeader: false,
       skipFooters: true,
       onlySelected: false,
       suppressQuotes: true,
       columnSeparator: ','
};
   this.gridApi.exportDataAsExcel(params);
}

我面临的问题是,在我的网格上,我显示“电子邮件”和“用户 ID”列,但它们在这些列中具有相同的电子邮件值..这意味着在内部,这两列具有相同的字段电子邮件。

现在,当定义columnKeys时,我指定电子邮件2次,在Excel中,我将列标题作为电子邮件2次,而不是我想将最后一个列标题显示为UserId

关于如何实现这一目标有什么建议吗?

angular excel ag-grid ag-grid-angular
1个回答
0
投票

是的,您可以通过使用回调函数 processHeaderCallback() 来实现标头定制,请访问OfficialDocumentationLink了解更多详细信息

即使 Excel 根据配置跳过该列,也会为每一列触发此回调函数,因此技巧是识别要更改标题的列。我通过在示例中使用计数器实现了这一点。

这是我通过分叉到官方文档中给出的示例创建的演示。

https://codesandbox.io/p/sandbox/excel-export-customising-column-group-headers-forked-f46k4h?file=%2Fapp.component.ts%3A123%2C46

© www.soinside.com 2019 - 2024. All rights reserved.