Я использую 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);
}
Проблема, с которой я столкнулся, заключается в том, что в моей сетке я показываю столбцы «электронная почта» и «идентификатор пользователя», но оба они имеют одинаковые значения электронной почты в этих столбцах. Это означает, что внутри оба столбца имеют одинаковое поле электронной почты.
Теперь, когда я определяю ColumnKeys, я указываю адрес электронной почты 2 раза, а в Excel я получаю заголовки столбцов как адрес электронной почты 2 раза, вместо этого я хочу отображать заголовок последнего столбца как UserId.
Любые предложения о том, как этого можно достичь?
Да, вы можете добиться обрезки заголовка, используя функцию обратного вызова ProcessHeaderCallback(), посетите Официальную ссылку на документацию для получения более подробной информации.
Эта функция обратного вызова запускается для каждого столбца, даже если столбец пропущен для Excel согласно конфигурации, поэтому хитрость заключается в определении столбца, для которого вы хотите изменить заголовок. Я добился этого, используя счетчик в своем примере.
Вот демо-версия, которую я создал, используя пример, приведенный в их официальной документации.