在Infragistics中将多个网格导出为单个Excel会点亮网格

时间:2017-08-09 08:48:23

标签: grid export-to-excel infragistics ignite-ui

我在页面上设置了多个Ignite UI网格。网格具有excel导出功能,但它仅适用于当前网格。如何在单个事件中导出所有网格? 要捕获或修改的任何网格事件。 我正在使用2016 v2版本

1 个答案:

答案 0 :(得分:4)

在研究了多个选项之后,找到了一个解决方案,它按顺序遍历网格集并将每个选项附加到主工作簿。

对于您选择的第一个网格的exportEnding方法,调用为第二个网格导出(假设为)的函数。这可以根据需要对多个网格进行排序。假设每个这样的函数都被命名为ExportGrid,例如exportSecondGrid。

grid1的

    exportEnding :function(sender, args) {
    exportSecondGrid(args.workbook);
    return false; 
    }

使用网格 2 的headerExporting事件将当前工作表附加到主工作簿。其exportEnding将标题导出中生成的标题集合转换为为工作表设置的手动

现在网格2的事件如下

var headerArr = [];
$.ig.GridExcelExporter.exportGrid($("#gridSecond"), {
    fileName: fileNamePassedAsParameter,
    worksheetName: Sheet2NamePassedAsParameter
},
{ 
headerCellExporting: function(sender, args) {
    // We will save all the headers coming to our array for retrieval later on
    headerArr.push(args.headerText);
    if (args.columnIndex === 0) { 
        sender._workbook = workbook;
        sender._workbook.worksheets().add( sender._worksheet.name());
        sender._worksheet = sender._workbook.worksheets(1);
    } 
}, 
exportEnding: function(sender, args) { 
    // Now use the array of headers to be updated
    var row = sender._worksheet.rows(0);
    for(var ind=0; ind < headerArr.length; ind++) {
        row.setCellValue(ind, headerArr[ind]); 
    }
}
}
);
}