GridView导出到Excel(可选择记录条数)
2010-11-30 10:38
579 查看
最近有点空就喜欢去研究研究GridView的使用,所以你如果是想要学习这方面的东西可以来参观参观。^_^
这里说明一下GridView到Excel的导出实现。平时你看到的GridView导出Excel代码可能很多了,但是我这里的肯定和你平时看到的不同,先看一下我的截图吧:
看出来了吧,我的导出是有条件可以选择的。你是想到处当前页面的数据呢还是想到处全部数据,或者是前30条数据。。。。
先说明一下我的实现原理吧。
当点击导出按钮时会去判断RadioButtonlist当前值然后去选择应该导出哪些数据到Excel。代码如下:
导出GrivView到Excel的方法:
public static void Export(string fileName, GridView gv,int top)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader(
"content-disposition", string.Format("attachment; filename={0}", fileName));
HttpContext.Current.Response.ContentType = "application/ms-excel";
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
// Create a form to contain the grid
Table table = new Table();
// add the header row to the table
if (gv.HeaderRow != null)
{
GridViewExportUtil.PrepareControlForExport(gv.HeaderRow);
table.Rows.Add(gv.HeaderRow);
}
// add each of the data rows to the table
if (top == 30)
{
for (int i = 0; i <= 29; i++)
{
GridViewRow row = gv.Rows[i];
GridViewExportUtil.PrepareControlForExport(row);
table.Rows.Add(row);
}
}
else
{
foreach (GridViewRow row in gv.Rows)
{
GridViewExportUtil.PrepareControlForExport(row);
table.Rows.Add(row);
}
}
// add the footer row to the table
if (gv.FooterRow != null)
{
GridViewExportUtil.PrepareControlForExport(gv.FooterRow);
table.Rows.Add(gv.FooterRow);
}
// render the table into the htmlwriter
table.RenderControl(htw);
// render the htmlwriter into the response
HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.End();
}
}
}
/// <summary>
/// Replace any of the contained controls with literals
/// </summary>
/// <param name="control"></param>
private static void PrepareControlForExport(Control control)
{
for (int i = 0; i < control.Controls.Count; i++)
{
Control current = control.Controls[i];
if (current is LinkButton)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text));
}
else if (current is ImageButton)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText));
}
else if (current is HyperLink)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text));
}
else if (current is DropDownList)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text));
}
else if (current is CheckBox)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False"));
}
if (current.HasControls())
{
GridViewExportUtil.PrepareControlForExport(current);
}
}
本文转载处:http://blog.csdn.net/dujingjing1230/archive/2009/10/29/4744428.aspx
这里说明一下GridView到Excel的导出实现。平时你看到的GridView导出Excel代码可能很多了,但是我这里的肯定和你平时看到的不同,先看一下我的截图吧:
看出来了吧,我的导出是有条件可以选择的。你是想到处当前页面的数据呢还是想到处全部数据,或者是前30条数据。。。。
先说明一下我的实现原理吧。
当点击导出按钮时会去判断RadioButtonlist当前值然后去选择应该导出哪些数据到Excel。代码如下:
导出GrivView到Excel的方法:
public static void Export(string fileName, GridView gv,int top)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader(
"content-disposition", string.Format("attachment; filename={0}", fileName));
HttpContext.Current.Response.ContentType = "application/ms-excel";
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
// Create a form to contain the grid
Table table = new Table();
// add the header row to the table
if (gv.HeaderRow != null)
{
GridViewExportUtil.PrepareControlForExport(gv.HeaderRow);
table.Rows.Add(gv.HeaderRow);
}
// add each of the data rows to the table
if (top == 30)
{
for (int i = 0; i <= 29; i++)
{
GridViewRow row = gv.Rows[i];
GridViewExportUtil.PrepareControlForExport(row);
table.Rows.Add(row);
}
}
else
{
foreach (GridViewRow row in gv.Rows)
{
GridViewExportUtil.PrepareControlForExport(row);
table.Rows.Add(row);
}
}
// add the footer row to the table
if (gv.FooterRow != null)
{
GridViewExportUtil.PrepareControlForExport(gv.FooterRow);
table.Rows.Add(gv.FooterRow);
}
// render the table into the htmlwriter
table.RenderControl(htw);
// render the htmlwriter into the response
HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.End();
}
}
}
/// <summary>
/// Replace any of the contained controls with literals
/// </summary>
/// <param name="control"></param>
private static void PrepareControlForExport(Control control)
{
for (int i = 0; i < control.Controls.Count; i++)
{
Control current = control.Controls[i];
if (current is LinkButton)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text));
}
else if (current is ImageButton)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText));
}
else if (current is HyperLink)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text));
}
else if (current is DropDownList)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text));
}
else if (current is CheckBox)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False"));
}
if (current.HasControls())
{
GridViewExportUtil.PrepareControlForExport(current);
}
}
本文转载处:http://blog.csdn.net/dujingjing1230/archive/2009/10/29/4744428.aspx
相关文章推荐
- GridView导出到Excel(可选择记录条数)
- 用NPOI插件把GridView上的图片导出到Excel的记录
- 后台导出GridView到Excel,可选择要导出的列
- 【转】Gridview导出到Excel,Gridview中的各类控件,Gridview中删除记录的处理
- Gridview导出到Excel,Gridview中的各类控件,Gridview中删除记录的处理
- asp.net 导出 gridview 数据 excel 全部 当前页 选择行 选中行 所选行 复选框
- 20100902 学习记录:GridView中的数据导出为Excel
- Gridview导出到Excel,Gridview中的各类控件,Gridview中删除记录的处理
- 2、 excel 导出。这种输入方式,适合后台输出,不需要打开EXCEL文件,不需要选择输出路径,只是后台自己默默的记录EXCEL文件。
- ASP.NET GridView有选择的导出Excel
- 【Vegas原创】VB.NET版Excel导出(GridView、DataGrid通吃)
- GridView导出Excel使用UpdatePanel导致“无法分析从服务器收到的消息”解决方法.
- 将GridView导出到Excel并防止内容乱码
- GridView导出数据到Excel
- 关于GridView导出到excel!
- GridView合并单元格及导出至Excel
- GridView导出Excel
- GridView格式化导出Excel收藏
- GridView选择记录同时confirm用户确认删除
- .NET导出Gridview到excel 带模板列显示(未验证)