开发者社区> it徐胖子> 正文

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用EasyPOI导出复杂的Word表格
使用EasyPOI导出复杂的Word表格
538 0
excel多sheet页的导入
excel多sheet页的导入
133 0
Kettle导出含有多个sheet页的excle文件
Kettle导出含有多个sheet页的excle文件
605 0
将表格导出为excel
1 2 3 零 4 一 5 二 6 三 7 四 8 9 10 万籁寂无声 11 衾铁棱棱近五更 12 ...
1174 0
+关注
it徐胖子
IT徐胖子
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载