Вы можете привязать обработчик к событию "excelExport" сетки, которое запускается перед экспортом и позволяет сначала настроить данные.Вы можете циклически проходить по строкам и столбцам, чтобы заменить значение id его отображением в коллекции значений столбцов.Это грубая сила, но это работает.Единственным другим, более эффективным способом было бы создание файла Excel на сервере вместо обработки на стороне клиента, обеспечиваемой сеткой, использующий оптимизированный запрос, который напрямую предоставляет текстовое значение.
Это функциямы используем.Он работает со всеми столбцами с внешним ключом, а не только с перечислениями, несмотря на название.
var replaceEnums = function (e) {
//Purpose:
// Convert enumeration columns to use the string value.
var hiddenCnt = 0;
var groupCnt = 0;
var dataCnt = false;
//Loop through the columns and look for a values collection.
for (var iCol = 0; iCol < e.sender.columns.length; iCol++) {
//if the column is hidden then do not do the replacement
if (!e.sender.columns[iCol].hidden) {
//If the values collection exists that means the column is an enumeration.
if (e.sender.columns[iCol].values) {
//Loop through each row
for (var iRow = 1; iRow < e.workbook.sheets[0].rows.length; iRow++) {
if (e.workbook.sheets[0].rows[iRow].type == "data") {
var cell = e.workbook.sheets[0].rows[iRow].cells[iCol - hiddenCnt + groupCnt]
dataCnt = true;
//Loop through the enumeration and get the string value. Stop once the correct
//value is found.
for (var iEnums = 0; iEnums < e.sender.columns[iCol].values.length; iEnums++) {
if (e.sender.columns[iCol].values[iEnums].value == cell.value) {
//Replace the enum value with the string value.
cell.value = e.sender.columns[iCol].values[iEnums].text
break
}
}
}
else {
//Track the number of group headers. We need to track the
//number of group headers because a group causes the columns
//to shift over by one for each grouping.
if (e.workbook.sheets[0].rows[iRow].type == "group-header") {
if (!dataCnt) {
groupCnt++;
}
}
}
}
}
}
else {
//The column is hidden so add it to the count of hidden columns
hiddenCnt++;
}
}
};
grid.bind("excelExport", replaceEnums);