Hi, I'm using a solution for exporting several grids to one excel file and it works great, but it only exports the current page of the application. Is there any way I can export all pages of the grids? Just like this:
.Excel(excel => excel
.FileName("Reporte.xlsx")
.Filterable(true)
.AllPages(true)
.ProxyURL(Url.Action("Excel_Export_Save", "Export"))
)
This is my current solution:
In the grids I have am Event trigger:
.Events(e => e.ExcelExport("pendientes_excelExport"))
And then a js function, fired by a button click:
// used to sync the exports
var promises = [
$.Deferred(),
$.Deferred(),
$.Deferred(),
$.Deferred(),
$.Deferred()
];
$("#export").click(function (e) {
// trigger export of the grids
$("#grillaOrigen1").data("kendoGrid").saveAsExcel();
$("#grillaOrigen2").data("kendoGrid").saveAsExcel();
$("#grillaConciliadas").data("kendoGrid").saveAsExcel();
$("#grillaManuales").data("kendoGrid").saveAsExcel();
$("#grillaPendientes").data("kendoGrid").saveAsExcel();
// wait for exports to finish
$.when.apply(null, promises)
.then(function (grillaOrigen1Workbook, grillaOrigen2Workbook, grillaConciliadasWorkbook, grillaManualesWorkbook, grillaPendientesWorkbook) {
// create a new workbook using the sheets of workbooks
var sheets = [
grillaOrigen1Workbook.sheets[0],
grillaOrigen2Workbook.sheets[0],
grillaConciliadasWorkbook.sheets[0],
grillaManualesWorkbook.sheets[0],
grillaPendientesWorkbook.sheets[0]
];
sheets[0].title = "Origen1";
sheets[1].title = "Origen2";
sheets[2].title = "Conciliadas";
sheets[3].title = "Manuales";
sheets[4].title = "Pendientes";
var workbook = new kendo.ooxml.Workbook({
sheets: sheets
});
// save the new workbook
kendo.saveAs({
dataURI: workbook.toDataURL(),
fileName: "Conciliacion.xlsx"
});
});
});
function origen1_excelExport(e) {
e.preventDefault();
promises[0].resolve(e.workbook);
}
function origen2_excelExport(e) {
e.preventDefault();
promises[1].resolve(e.workbook);
}
function conciliadas_excelExport(e) {
e.preventDefault();
promises[2].resolve(e.workbook);
}
function manuales_excelExport(e) {
e.preventDefault();
promises[3].resolve(e.workbook);
}
function pendientes_excelExport(e) {
e.preventDefault();
promises[4].resolve(e.workbook);
}
Thank you very much