Javascript 隐藏Ken grid导出到excel中的标题组模板

Javascript 隐藏Ken grid导出到excel中的标题组模板,javascript,kendo-grid,Javascript,Kendo Grid,大家好,我正在使用剑道网格显示详细信息列表 <div style="text-align:left;position:relative;width:auto; width:99%; padding:4px; padding-top:0px; color:#286006" id="centerPane-IFrame"> @(Html.Kendo().Grid<SDByBatchPublisherReportVM>() .Name("ReportGrid") .EnableC

大家好,我正在使用剑道网格显示详细信息列表

<div style="text-align:left;position:relative;width:auto; width:99%; padding:4px; padding-top:0px; color:#286006" id="centerPane-IFrame">
@(Html.Kendo().Grid<SDByBatchPublisherReportVM>()
.Name("ReportGrid")
.EnableCustomBinding(true)
.HtmlAttributes(new { style = "width:100%" })
.Columns(columns =>
{
 columns.Bound(x => x.PublisherName)
.Title("Publisher")
.Visible(true)
.Width("50%")
.HeaderHtmlAttributes(new { style = "font-weight: bold;" })
.ClientGroupHeaderTemplate("Publisher: #=value# </td><td style='text- 
align:center;'>Product Count: #=aggregates.ProductName.count# </td> 
<td>Discrepancy Count") //Discrepancy Count: #=aggregates.SDCount.sum#
.HtmlAttributes(new { style = "text-align:left" })
.Filterable(ftb => ftb.Multi(true).Search(true));
columns.Bound(x => x.ProductName)
.Title("Product")
.Width("60%")
.HeaderHtmlAttributes(new { style = "font-weight: bold;" })
 .Filterable(ftb => ftb.Multi(true).Search(true));
 columns.Bound(x => x.SDCount)
.Title("Discrepancy Count")
.Width("30%")
 .HeaderHtmlAttributes(new { style = "font-weight: bold;" })
 .Filterable(ftb => ftb.Multi(true).Search(true));
 columns.Template(@<text></text>).Title("").Width(1);                                                       
  })
 .Pageable(m => m.PageSizes(new int[] { 50, 100, 150, 500 }).Refresh(true))
 .Selectable(selectable => 
  selectable.Enabled(true).
  Mode(GridSelectionMode.Single).Type(GridSelectionType.Row))
 .Scrollable().Sortable()
 .Filterable()
 .DataSource(dataSource => dataSource
 .Ajax()
 .Batch(false)
 .ServerOperation(false)
  .PageSize(100)
 .Read(read => read.Action("ByBatchPublisherGrid_Read", 
  "SoftwareDiscrepancyMetrics").Data("buildReportData"))
 .Aggregates(agg =>
  {
  agg.Add(x => x.SDCount).Sum();
  agg.Add(x => x.ProductName).Count();
  })
 .Group(group =>
  {
  group.Add(x => x.PublisherName);
  })
  )
 .Events(evt => evt.DataBound("OnDataBound"))
  .Excel(excel => excel.AllPages(true).Filterable(true))
  )
 </div>

@(Html.Kendo().Grid())
.Name(“报告网格”)
.EnableCustomBinding(真)
.HtmlAttributes(新的{style=“width:100%”)
.列(列=>
{
columns.Bound(x=>x.PublisherName)
.标题(“出版商”)
.可见(真实)
.宽度(“50%”)
.HeaderHtmlAttributes(新的{style=“font-weight:bold;”})
.ClientGroupHeaderTemplate(“发布者:#=值#产品计数:#=聚合.ProductName.Count”
差异计数“//差异计数:#=aggregates.SDCount.sum#
.HtmlAttributes(新的{style=“text align:left”})
.Filterable(ftb=>ftb.Multi(true).Search(true));
columns.Bound(x=>x.ProductName)
.名称(“产品”)
.宽度(“60%”)
.HeaderHtmlAttributes(新的{style=“font-weight:bold;”})
.Filterable(ftb=>ftb.Multi(true).Search(true));
columns.Bound(x=>x.SDCount)
.标题(“差异计数”)
.宽度(“30%”)
.HeaderHtmlAttributes(新的{style=“font-weight:bold;”})
.Filterable(ftb=>ftb.Multi(true).Search(true));
列。模板(@)。标题(“”)。宽度(1);
})
.Pageable(m=>m.PageSizes(新的int[]{50100150500})。刷新(true))
.可选(可选=>
可选。已启用(真)。
模式(GridSelectionMode.Single).Type(GridSelectionType.Row))
.Scrollable().Sortable())
.可过滤()
.DataSource(DataSource=>DataSource
.Ajax()
.批(假)
.ServerOperation(错误)
.页面大小(100)
.Read(Read=>Read.Action(“ByBatchPublisherGrid_Read”,
“SoftwareDiscreditPancymetrics”).Data(“buildReportData”))
.Aggregates(agg=>
{
Add(x=>x.SDCount.Sum();
agg.Add(x=>x.ProductName.Count();
})
.组(组=>
{
Add(x=>x.PublisherName);
})
)
.Events(evt=>evt.DataBound(“OnDataBound”))
.Excel(Excel=>Excel.AllPages(true).Filterable(true))
)
通过使用上面的代码在网格中显示详细信息列表。现在,我正尝试导出excel中显示的所有数据

 function ExportButtonClick() {
    debugger
    var grid = $("#ReportGrid").data("kendoGrid");
    if (grid.dataSource.total() == 0) {
        alert("There are no records available in the Grid to Export!!!");
    }
    else {
        var firstGroup = grid.dataSource.group()[0].field;
        $('#grid tbody .k-grouping-row:contains("")').hide();
        grid.bind("excelExport", function (e) {
            var batchId = $("#txtBatchId").data("kendoDropDownList").text();
            e.workbook.fileName = "By_BatchPublisher_Report_" + batchId + ".xlsx";
            debugger

            var sheet = e.workbook.sheets[0];
            var rows = e.workbook.sheets[0].rows;
            var gridData = "";
            //This is for Remvoing HTML Tags from Cell text // added on 07-05-2018
            for (var ri = 0; ri < rows.length; ri++) {
                var row = rows[ri];

                for (var ci = 0; ci < row.cells.length; ci++) {
                    row.cells[ci].hidden = true;
                    var cell = row.cells[ci];

                        if (row.type == "group-header") {
                            cell.value = "";
                        }
                        if (cell.value) {
                            gridData = cell.value;
                            if (!$.isNumeric(cell.value)) {
                                cell.value = gridData.replace(/(<([^>]+)>)/ig, "");
                            } else {
                                cell.value = gridData;
                            }
                    }
                }
            }

            //End Here
            debugger
            for (var i = 0; i < sheet.columns.length; i++) {
                    sheet.columns[i].autoWidth = false;
                    sheet.columns[i].width = 300;
            }
        });
        grid.saveAsExcel();
    }
}
我的要求是需要在导出到excel中删除GroupHeaderTemplate数据(无需在excel中显示该组标题模板数据)

函数导出按钮单击(){
调试器
var grid=$(“#ReportGrid”).data(“kendoGrid”);
if(grid.dataSource.total()==0){
警报(“网格中没有可导出的记录!!!”;
}
否则{
var firstGroup=grid.dataSource.group()[0]。字段;
$('#grid tbody.k-grouping-row:contains(“”)).hide();
grid.bind(“excelExport”,函数(e){
var batchId=$(“#txtBatchId”).data(“kendoDropDownList”).text();
e、 workbook.fileName=“By_BatchPublisher_Report”+batchId+”.xlsx”;
调试器
var sheet=e.workbook.sheets[0];
var rows=e.workbook.sheets[0]。行;
var gridData=“”;
//这是为了从2018年5月7日添加的单元格文本//中删除HTML标记
对于(var ri=0;ri)/ig,“”;
}否则{
cell.value=网格数据;
}
}
}
}
//到此为止
调试器
对于(var i=0;i
我用于导出到excel的上述函数可以帮助我如何从excel中隐藏组标题模板。

请尝试以下方法:

function (e) {
            var rows = e.workbook.sheets[0].rows;
            var newRows = []
            for (var ri = 0; ri < rows.length; ri++) {
                var row = rows[ri];

                if (row.type !== "group-header") {
                    newRows.push(row)
                }
            }
            e.workbook.sheets[0].rows = newRows
            return e;
        }
函数(e){
var rows=e.workbook.sheets[0]。行;
var newRows=[]
对于(var ri=0;ri

在这里的最后一篇文章中有很多类似的例子:

有人能帮我吗?为什么没有人帮我