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
在这里的最后一篇文章中有很多类似的例子:有人能帮我吗?为什么没有人帮我