在 telerik radgridview ui winform 中导出到 excel 时隐藏每个父行子行的指定列
hide specified columns for each parent row child rows when exporting to excel in telerik radgridview ui winform
我的 winform
应用程序中有一个分层 telerik gridview
。
在这个 gridview
主模板中,我有一些行,每个行都有子行,并且在该父行的所有子行的某些列中为空。
我编写了一段代码,只允许展开一个父行,并且在展开该父行时仅显示至少在一个子行中具有值的列,并隐藏其子行对于该父行全部为空的列包含 radGridView1_ChildViewExpanded
事件处理程序的行。
我的问题是当我想将这个分层 telerik gridview
导出到 excel 文件时。在导出时我应该怎么做才能达到我所描述的效果,意味着只导出在其子行中至少有一个值的列,而不为每个父行导出其他列。
为此,您可以使用 GridViewSpreadExport 的 HiddenRowOption 属性 并将其设置为 不导出。然后,要定义隐藏哪些行,将它们的 IsVisible 属性 设置为 false
radGridView1.Rows[0].IsVisible = false;
有关此问题的更多信息,您可以在 Telerik UI 的 WinForms 文档的以下文章中找到:Export to Excel
我使用了这段代码并且有效
void spreadExporter_CellFormatting(object sender, Telerik.WinControls.Export.CellFormattingEventArgs e)
{
if (e.GridRowInfoType == typeof(GridViewHierarchyRowInfo))
{
int i = 0;
foreach (GridViewColumn column in radGridView1.MasterTemplate.Templates[0].Columns)
{
if (i > 1)
{
int TotalNullRecords = (from row in e.GridCellInfo.RowInfo.ChildRows
where string.IsNullOrWhiteSpace(row.Cells[column.Name].Value.ToString())
select row).ToList().Count;
if (TotalNullRecords == e.GridCellInfo.RowInfo.ChildRows.Count)
{
radGridView1.MasterTemplate.Templates[0].Columns[column.Name].IsVisible = false;
}
else
radGridView1.MasterTemplate.Templates[0].Columns[column.Name].IsVisible = true;
}
i++;
}
}
}
我的 winform
应用程序中有一个分层 telerik gridview
。
在这个 gridview
主模板中,我有一些行,每个行都有子行,并且在该父行的所有子行的某些列中为空。
我编写了一段代码,只允许展开一个父行,并且在展开该父行时仅显示至少在一个子行中具有值的列,并隐藏其子行对于该父行全部为空的列包含 radGridView1_ChildViewExpanded
事件处理程序的行。
我的问题是当我想将这个分层 telerik gridview
导出到 excel 文件时。在导出时我应该怎么做才能达到我所描述的效果,意味着只导出在其子行中至少有一个值的列,而不为每个父行导出其他列。
为此,您可以使用 GridViewSpreadExport 的 HiddenRowOption 属性 并将其设置为 不导出。然后,要定义隐藏哪些行,将它们的 IsVisible 属性 设置为 false
radGridView1.Rows[0].IsVisible = false;
有关此问题的更多信息,您可以在 Telerik UI 的 WinForms 文档的以下文章中找到:Export to Excel
我使用了这段代码并且有效
void spreadExporter_CellFormatting(object sender, Telerik.WinControls.Export.CellFormattingEventArgs e)
{
if (e.GridRowInfoType == typeof(GridViewHierarchyRowInfo))
{
int i = 0;
foreach (GridViewColumn column in radGridView1.MasterTemplate.Templates[0].Columns)
{
if (i > 1)
{
int TotalNullRecords = (from row in e.GridCellInfo.RowInfo.ChildRows
where string.IsNullOrWhiteSpace(row.Cells[column.Name].Value.ToString())
select row).ToList().Count;
if (TotalNullRecords == e.GridCellInfo.RowInfo.ChildRows.Count)
{
radGridView1.MasterTemplate.Templates[0].Columns[column.Name].IsVisible = false;
}
else
radGridView1.MasterTemplate.Templates[0].Columns[column.Name].IsVisible = true;
}
i++;
}
}
}