var columns = e.workbook.sheets[0].columns; var data = e.data; var gridColumns = e.sender.columns; var sheet = e.workbook.sheets[0]; var visibleGridColumns = []; var columnTemplates = []; var dataItem; // Create element to generate templates in. var elem = document.createElement('div'); columns.forEach(function (column) { delete column.width; column.autoWidth = true; e.workbook.sheets[0].name = $("#services").data("kendoDropDownList").value(); }); for (var i = 0; i < gridColumns.length; i++) { visibleGridColumns.push(gridColumns[i]); } // Create a collection of the column templates, together with the current column index for (var i = 0; i < visibleGridColumns.length; i++) { if (visibleGridColumns[i].template) { columnTemplates.push({ cellIndex: i, template: kendo.template(visibleGridColumns[i].template) }); } } // Traverse all exported rows. for (var i = 1; i < sheet.rows.length; i++) { var row = sheet.rows[i]; // Traverse the column templates and apply them for each row at the stored column position. // Get the data item corresponding to the current row. var dataItem = data[i - 1]; for (var j = 0; j < columnTemplates.length; j++) { var columnTemplate = columnTemplates[j]; // Generate the template content for the current cell. elem.innerHTML = columnTemplate.template(dataItem); if (row.cells[columnTemplate.cellIndex] != undefined) // Output the text content of the templated cell into the exported cell. row.cells[columnTemplate.cellIndex].value = elem.textContent || elem.innerText || ""; } }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter