GridView导出到Excel或Word文件

 

在项目中我们经常会遇到要求将一些数据导出成Excel或者Word表格的情况

 

前台代码:

<form id="form1" runat="server">
    <div>
        <asp:GridView ID="gvPersonList" runat="server" >
            <Columns>
                <asp:BoundField DataField="Id" HeaderText="编号" />
                <asp:BoundField DataField="Name" HeaderText="姓名" />
                <asp:TemplateField HeaderText="性别">
                    <ItemTemplate>
                        <%# eval_r("Sex").ToString()=="true"?"男":"女" %>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Age" HeaderText="年龄" />
                <asp:TemplateField HeaderText="婚否">
                    <ItemTemplate>
                        <%# Boolean.Parse(eval_r("Married").ToString())==true?"是":"否" %>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:Button ID="btnToExcel" runat="server" OnClick="btnToExcel_Click" Text="导出Excel" />
        <asp:Button ID="btnToWord" runat="server" OnClick="btnToWord_Click" Text="导出Word" />
    </div>
    </form>

 

后台代码
protected void btnToExcel_Click(object sender, EventArgs e)

{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);

 

Page page = new Page();
HtmlForm form = new HtmlForm();

GridView1.EnableViewState = false;

page.EnableEventValidation = false;

page.DesignerInitialize();

page.Controls.Add(form);
form.Controls.Add(GridView1);

page.RenderControl(htw);

 

Response.Clear();
Response.Buffer = true;

//设置导出文件的格式
Response.ContentType = "application/vnd.ms-excel";

//假定导出的文件名为data.xls
Response.AddHeader("Content-Disposition", "attachment;filename=data.xls");
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.Default;
Response.Write(sb.ToString());
Response.End();

}

 

protected void btnToWord_Click(object sender, EventArgs e)
{
 StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);

 

Page page = new Page();
HtmlForm form = new HtmlForm();

GridView1.EnableViewState = false;

page.EnableEventValidation = false;

page.DesignerInitialize();

page.Controls.Add(form);
form.Controls.Add(GridView1);

page.RenderControl(htw);

 

Response.Clear();
Response.Buffer = true;

//设置导出文件的格式
Response.ContentType = "application/ms-word";

//假定导出的文件名为data.xls
Response.AddHeader("Content-Disposition", "attachment;filename=data.doc");
Response.Charset = "UTF-8";
Response.ContentEncoding = Encoding.Default;
Response.Write(sb.ToString());
Response.End();

}

参考博客1:http://blog.csdn.net/zhoufoxcn/archive/2008/05/16/2450642.aspx

参考博客2:http://blog.csdn.net/rickyll/archive/2009/10/22/4714517.aspx

时间: 2024-11-16 00:07:21

GridView导出到Excel或Word文件的相关文章

有谁做个gridview 导出到Excel文件.

问题描述 有谁做个gridview导出到Excel文件.必须导出到officeexcel2007中,请大侠们给个例子参考参考!谢谢! 解决方案 解决方案二:usingSystem.IO;usingSystem.Text;//页面增加一个按钮,单击事件添加如下方法:protectedvoidButton1_Click(objectsender,EventArgse){Export("application/ms-excel","学生成绩报表.xls");}privat

ASP.NET2.0中将GridView导出到Excel文件中

下面代码实现将 GridView 导出到 Excel文件中. 值得注意的是VerifyRenderingInServerForm重载方法: MSDN上的 VerifyRenderingInServerForm 方法的描述: 必须位于 <form runat=server> 标记中的控件可以在呈现之前调用此方法,以便在控件被置于标记外时显示错误信息.发送回或依赖于注册的脚本块的控件应该在 Control.Render 方法的重写中调用此方法.呈现服务器窗体元素的方式不同的页可以重写此方法以在不同

如何将包含自定义控件GridView导出到Excel

今天有人问我,如果Girdview模板列里使用了自定义控件,那导出的时候如何处理? 比如该自定义控件包含一个Dropdownlist和三个Label控件,其中用来在页面上显示数据的是其中一个 Label控件,现在的问题是,如果不在PrepareControlForExport()中对该自定义控件进行处理,那么导 出的Excel文件的对应Gridview中使用了自定义控件的列的内容全部相同(为Dropdownlist控件的第一个 Item),但是对该自定义控件进行处理的话,不知道该如何才能正确的取

C#把DataSet内数据转化为Excel和Word文件的通用类

前不久因为项目的需要写的一个C#把DataSet内数据转化为Excel和Word文件的通用类,这些关于Excel.Word的导出方法,基本可以实现日常须要,其中有些方法可以把数据导出后 生成Xml格式,再导入数据库!有些屏蔽内容没有去掉,保留下来方便学习参考用之. 最后请引用Office相应COM组件,导出Excel对象的一个方法要调用其中的一些方法和属性. using System; using System.Collections; using System.ComponentModel;

C#实现DataSet内数据转化为Excel和Word文件的通用类完整实例_C#教程

本文实例讲述了C#实现DataSet内数据转化为Excel和Word文件的通用类.分享给大家供大家参考,具体如下: 前不久因为项目的需要写的一个C#把DataSet内数据转化为Excel和Word文件的通用类,这些关于Excel.Word的导出方法,基本可以实现日常须要,其中有些方法可以把数据导出后 生成Xml格式,再导入数据库!有些屏蔽内容没有去掉,保留下来方便学习参考用之. 最后请引用Office相应COM组件,导出Excel对象的一个方法要调用其中的一些方法和属性. using Syste

GridView导出生成Excel文件的问题,office2007/2010打不开 ????

问题描述 导出代码HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=a.xls");HttpContext.Current.Response.Charset="UTF-8";HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.UTF7;HttpCon

将GridView中的数据导出为EXCEL时,文件中有控件出现(急)

问题描述 我在GridView中用了Button和DropDownList,但是在導出為EXCEL時出現了這些控件,請問怎樣解決呢,而且我不想讓"編輯"(button)和"刪除"(button)"出現在EXCEL中,怎樣做才能實現呢,大家幫幫我好嗎?先謝謝了 解决方案 解决方案二:excel可以兼容html的table及样式你的gridview导出我不知道是怎么实现的但是你可以提取该gridview的代码remove掉button等代码再write出去解决

把Web Control导出为Excel或Word

excel|web|word /// <summary> /// 将Web控件导出 /// </summary> /// <param name="source">控件实例</param> /// <param name="type">类型:Excel或Word</param> public void ExpertControl(System.Web.UI.Control source, Doc

关于GridView导出成Excel的一道超级难题,郁闷死我了,请大家帮忙看看啊,谢谢啦!!!!!!!!

问题描述 要求是这样的:要把GridView的数据导出成Excel,我现在已经导成了如下格式,但是客户要求加入按照组别的小计功能,小弟对此要求实在是无能为力,不知道该怎样动态生成小计的那几行,跪求各位给小弟指点迷津,分不是太多,希望大家本着革命精神救小弟一把!!!!以下是我目前生成的格式:区域组别业务员探访次数探访家数宝安压铸一组黎敏2018宝安压铸一组陈虞洲2422宝安压铸二组刘志华2214宝安压铸二组范世雄1914宝安注塑李学刚2518宝安注塑隆全景2520宝安注塑梅基敏2423宝安注塑魏敬