将GridView中的数据导出到Excel / Word中

          在开发 ASP.NET web 应用程序时,我们很常用到 GridView 控件来显示数据,那我们怎样才能将 GridView 中的数据导出到 Excel 或者 Word 中呢?

前提条件:

1你的GridView已经能正常显示数据了,不管你是用代码实现的,还是直接绑定数据库实现的。

2、如果你的GridView启动了分页功能,则要先将该功能关闭,即将allowpaging的属性设为false, AllowPaging="false";然后重新调用databind()或者你自己定义的显示函数,确保所有的数据都显示在GridView中,再导完数据之后,记得把allowpaging的属性值改回来。

3、在页面中添加一个"导出"按钮,当点击该按钮时执行导出动作。双击改按钮,编写事件处理函数。在用到StringWriter类的时候,要在.aspx.cs文件的头部添加命名空间:using System.IO;usingSystem.Data.SqlClient可能也要添加一下。

上面都准备好后,下面进行数据保存前对保存文件的一些设置:

设置输出文件的类型

//输出类型为Word
Response.ContentType = "application/ms-word";
//输出类型为Excel
//Response.ContentType = "application/ms-excel";

设置编码方式和内容保存的形式
Response.ContentEncoding = System.Text.Encoding.UTF8;

//设置显示的字和内容要存的形式
Response.Charset = "Word文档";

设置保存为的文件名

string dateStr = DateTime.Now.ToString("yyyyMMddHHmmss");
string fileName=System.Web.HttpUtility.UrlEncode("要保存为的文件名" +dateStr, System.Text.Encoding.UTF8);
        
//设置保存的文件名
Response.AppendHeader("content-disposition", "attachment;filename=\"" + fileName + ".doc\"");

至此保存前文件的一些设置已经完成了,下面就是将GridView中的数据保存到Word/Excel中

StringWriter oStringWriter = new StringWriter();
HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);

GridView1.RenderControl(oHtmlTextWriter);        
Response.Write(oStringWriter.ToString());
若想将多个GridView中的数据保存到同一个Word文件中,只需将之前的StringWriter、HtmlTextWriter对象释放,重新实例化一下就可以了,若不重新实例化GridView1中的数据会再写入一次。

oStringWriter = new StringWriter();
oHtmlTextWriter = new HtmlTextWriter(oStringWriter);
GridView2.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
下面附上protected void Button1_Click(object sender, EventArgs e)中的完整代码

    protected void Button1_Click(object sender, EventArgs e)
    {
        //清除客户端当前显示
        Response.Clear();
        Response.Buffer = true;

        //输出类型为Word
        Response.ContentType = "application/ms-word";
        //输出类型为Excel
        //Response.ContentType = "application/ms-excel";

        Response.ContentEncoding = System.Text.Encoding.UTF8;

        //设置显示的字和内容要存的形式
        Response.Charset = "Word文档";

        string dateStr = DateTime.Now.ToString("yyyyMMddHHmmss");
        string fileName=System.Web.HttpUtility.UrlEncode("A卷" +dateStr, System.Text.Encoding.UTF8);
        
        //设置保存的文件名
        Response.AppendHeader("content-disposition", "attachment;filename=\"" + fileName + ".doc\"");
        this.EnableViewState = false;

        StringWriter oStringWriter = new StringWriter();
        HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);

        GridView1.RenderControl(oHtmlTextWriter);        
        Response.Write(oStringWriter.ToString());

        oStringWriter = new StringWriter();
        oHtmlTextWriter = new HtmlTextWriter(oStringWriter);
        GridView2.RenderControl(oHtmlTextWriter);
        Response.Write(oStringWriter.ToString());

        Response.End(); 
    }



为了在Windows安装ADB工具,你可以按照以下步骤进行操作: 1. 首先,下载ADB工具包并解压缩到你自定义的安装目录。你可以选择将其解压缩到任何你喜欢的位置。 2. 打开运行窗口,可以通过按下Win+R键来快速打开。在运行窗口中输入"sysdm.cpl"并按下回车键。 3. 在系统属性窗口中,选择"高级"选项卡,然后点击"环境变量"按钮。 4. 在环境变量窗口中,选择"系统变量"部分,并找到名为"Path"的变量。点击"编辑"按钮。 5. 在编辑环境变量窗口中,点击"新建"按钮,并将ADB工具的安装路径添加到新建的路径中。确保路径正确无误后,点击"确定"按钮。 6. 返回到桌面,打开命令提示符窗口。你可以通过按下Win+R键,然后输入"cmd"并按下回车键来快速打开命令提示符窗口。 7. 在命令提示符窗口中,输入"adb version"命令来验证ADB工具是否成功安装。如果显示版本信息,则表示安装成功。 这样,你就成功在Windows安装ADB工具。你可以使用ADB工具来执行各种操作,如枚举设备、进入/退出ADB终端、文件传输、运行命令、查看系统日志等。具体的操作方法可以参考ADB工具的官方文档或其他相关教程。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [windows环境安装adb驱动](https://blog.youkuaiyun.com/zx54633089/article/details/128533343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Windows安装使用ADB简单易懂教程](https://blog.youkuaiyun.com/m0_37777700/article/details/129836351)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值