gridview数据导出到Excel的研究

Abaqus梁模型仿真中的常见陷阱与优化策略 本文深入探讨了Abaqus梁模型仿真中的常见陷阱与优化策略,涵盖几何建模、材料属性设置、边界条件处理等关键环节。针对梁截面方向定义、网格划分、复合截面建模等典型问题,提供了实用的Python脚本示例和优化方案,帮助工程师避免计算错误并提升仿真精度。文章特别强调了动力分析中的网格密度要求和材料非线性考虑,为复杂工程应用提供专业指导。 阅读详情
将GridView中的数据导出为Excel是web应用中的常见功能。在不同的应用场景下有不同的导出技术。在本文中我将介绍一些导出的技术,希望对您有所帮助

GridView Export the Excel (Basic Code):
首先看一个基础的应用。创建一个表格,见截图

单击显示全图,Ctrl+滚轮缩放图片

然后将数据库中的数据绑定到GridView中的数据,代码如下:
复制 保存
private void BindData()
{
    SqlConnection myConnection 
        = new SqlConnection("Server=localhost;Database=School;Trusted_Connection=true");

    SqlDataAdapter ad = new SqlDataAdapter("SELECT * FROM Users", myConnection);
    DataSet ds = new DataSet();
    ad.Fill(ds);
    gvUsers.DataSource = ds;
    gvUsers.DataBind();
}


单击显示全图,Ctrl+滚轮缩放图片

现在,GridView中已经绑定了数据,接下来的任务就是导出到Excel。下面是button事件中的代码

复制 保存
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
Response.ContentType = "application/excel";

StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gvUsers.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();

并且还需要override一下VerifyRenderingInServerForm方法(这一点非常重要,否则在点击按钮后会报错,译者注),代码如下:
复制 保存
public override void VerifyRenderingInServerForm(Control control)
{
}

点击导出按钮后会弹出对话框,询问您打开或保存。选择打开文件,导出到Excel的结果如下图:

单击显示全图,Ctrl+滚轮缩放图片


Exporting GridView to Excel With Style:


您是否注意到了以上代码存在一些的问题?是的,ID列开头的0都被截去了。如果你的ID是000345,导出后就编程了345。这个问题可以通过把css添加到输出流中来解决。为了使ID列正确显示,您需要将其储存为文本格式。Excel中的文本格式表示为"mso-number-format:"/@"。
复制 保存
protected void Btn_ExportClick(object sender, EventArgs e)
{
    string style = @"<style> .text { mso-number-format:/@; } </script> ";
    Response.ClearContent();
    Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
    Response.ContentType = "application/excel";

    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    gvUsers.RenderControl(htw);

    // Style is added dynamically
    Response.Write(style);
    Response.Write(sw.ToString());
    Response.End();
}

public override void VerifyRenderingInServerForm(Control control)
{
}

在上面的代码中,我通过”style”变量来控制GridView列的样式。并通过Respnose.Write方法将其添加到输出流中。最后把样式添加到ID列。这一步需要在RowDataBound事件中完成
复制 保存
protected void gvUsers_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        e.Row.Cells[1].Attributes.Add("class", "text");
    }
}

修改的结果如下:
单击显示全图,Ctrl+滚轮缩放图片


Exporting GridView With LinkButtons and Paging:


如果要导出的GridView中包含LinkButton或者分页(出现分页码时,译者注) 则将出现错误:

单击显示全图,Ctrl+滚轮缩放图片


复制 保存
<%@ Page Language="C#" EnableEventValidation="false" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

通过修改页文件可以修正这个问题:EnableEventValidation = "false".
看一下导出的文件

单击显示全图,Ctrl+滚轮缩放图片

在导出的文件中可以看见linkbutton和dropdownlist控件,虽然dropdownlist控件显示的数据的确是用户所选的项,但怎么看也不像是一个导出文件(我倒是觉的挺cool的:)译者注),现在应如何移除dropdownlist并显示选择的文字呢?


我写了一个DisableControls函数,用使循环的方法将linkbutton和dropdownlist替换成literal控件
复制 保存
private void DisableControls(Control gv)
{
    LinkButton lb = new LinkButton();
    Literal l = new Literal();
    string name = String.Empty;

    for (int i = 0; i < gv.Controls.Count; i++)
    {
        if (gv.Controls[i].GetType() == typeof(LinkButton))
        {
            l.Text = (gv.Controls[i] as LinkButton).Text;
            gv.Controls.Remove(gv.Controls[i]);
            gv.Controls.AddAt(i, l);
        }
        else if (gv.Controls[i].GetType() == typeof(DropDownList))
        {
            l.Text = (gv.Controls[i] as DropDownList).SelectedItem.Text;
            gv.Controls.Remove(gv.Controls[i]);
            gv.Controls.AddAt(i, l);
        }

        if (gv.Controls[i].HasControls())
        {
            DisableControls(gv.Controls[i]);
        }
    }
}

方法非常简单,只需将linkbuton和dropdownlist替换成literal控件,并将选择项赋值给literal控件的文本属性。该方法需要在导出前调用
复制 保存
protected void Btn_ExportExcelPaging(object sender, EventArgs e)
{
    DisableControls(gvUsers);
    Response.ClearContent();
    Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls");
    Response.ContentType = "application/excel";

    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    gvUsers.RenderControl(htw);
    Response.Write(sw.ToString());
    Response.End();
}

现在的Excel中就只剩下选中文本了

单击显示全图,Ctrl+滚轮缩放图片
Codex、Claude Code、Opus、Trae、Cursor:一文讲懂 2026 AI 编程工具格局 2026年AI编程工具将形成三层体系:模型层(Opus/Codex)负责思考,执行层(Claude Code/Codex Agent)负责自动开发任务,工具层(Cursor/Trae)提供AI集成的开发环境。关键区别在于Agent路线强调AI主导自动化开发,而IDE路线保持人类主导。未来竞争力取决于能否将AI整合为生产力系统,掌握模型推理、Agent任务编排和AI IDE协同三大能力。核心转变是从"写代码"升级为"指挥AI写代码",高级玩家通过组合不同层级工具构建自动 阅读详情

相关推荐

GridViewExcel数据转换与处理的.NET教程

htmltable {th, td {th {pre {简介:在.NET开发中,GridView控件和Excel应用在数据展示、编辑和分析中扮演重要角色。本教程探讨如何实现GridViewExcel数据的双向转换,包括编程绑定数据、操作Excel文件、优化导入导出性能等,涉及数据库交互、文件流操作,并通过示例代码展示如何高效处理大量数据

weixin_31974443的博客 935

C#DataGridview数据导出excel两个方法

C#DataGridview数据导出excel两个方法

HXD196的博客 3786

c#后台代码,gridview数据导出excel

gridview数据导出excel中,中文数据有时候是乱码的,数字类型的数据导出的时候前面的零不能显示问题,在这里都可以得到很好的解决

GridView的内容导出Excel

原文来自:http://gridviewguy.com/ArticleDetails.aspx?articleID=197 介绍: 将GridView的内容导出Excel是很普通的应用,在很多网站上都有使用。有各种不同的技术来实现GridView导出Excel中,主要是看应用程序的具体情况。在本文中我将演示一些你会觉得有用的技巧。 从GridView导出到Exc...

QAZ135000的博客 557

GridView导出Excel

1.由于gridview的内容可能是分页显示的,因此,这里在每次导出excel时,先将gridview的allowpaging属性设置为false,然后databind()一下,确保搂到所有数据;2.不用单独设置导出的路径,导出时会弹出对话框让你确认保存位置;3.要写一个空的VerifyRenderingInServerForm方法(必须写),以确认在运行时为指定的ASP.NET 服务器控件呈现H

樟树下的专栏 2879

.NET中操作Excel

GridView导出Excel研究 [url]http://www.cnblogs.com/stswordman/archive/2006/08/24/485641.html[/url] ASP.NET Excel导入SQLserver 数据库中 [url]http://hi.baidu.com/liuxingwl2009/blog/item/916cb6598a2a9588810a18...

long546324的专栏 124

Gridview导出Excel

 1.由于gridview的内容可能是分页显示的,因此,这里在每次导出excel时,先将gridview的allowpaging属性设置为false,然后databind()一下,确保搂到所有数据;   2.不用单独设置导出的路径,导出时会弹出对话框让你确认保存位置;   3.要写一个空的VerifyRenderingInServerForm方法(必须写),以确认在运行时为指定的ASP.NET 服

好姑娘 的专栏 3151

Gridview导出Excel,Gridview中的各类控件,Gridview中删除记录的处理

         Asp.net 2.0中新增的gridview控件,是十分强大的数据展示控件,在前面的系列文章里,分别展示了其中很多的基本用法和技巧(详见<ASP.NET 2.0中Gridview控件高级技巧>)。在本文中,将继续探讨有关的技巧。   一、Gridview中的内容导出Excel  在日常工作中,经常要将gridview中的内容导出excel报表中去,在asp.net 2.0中

taito的专栏 6984

GridView导出数据Excel

Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=sx.xls"); Response.Charset = "GB2312"; Response.ContentEncoding = System.Text.Encoding.UTF8;

bydxyj的专栏 831

GridView导出Excel DataTable导出Excel 实例

例子做的比较简单,主要实现GridView导出Excel 和 DataTable直接导出Excel 不再需要绑定gridview再输出,网上的资料很多基本都说的差不多所以做了个小例子献给需要的朋友。GridView打印Excel///         /// GridView打印Excel        ///         /// GridView控件        public void ExportToExcel(System.Web.UI.Control ctl)        {        

tony的点点滴滴 794

GridView显示的内容导出Excel

1.      在页面文件里有一个GridView,假定ID为GridView_CheckStat 2.      用户访问到GridView显示的内容之后点击一个导出按钮 3.      方法如下:          引入:using System.IO;

ajaxtop 6893

GridView导出Excel方法

GridView导出Excel方法一、引用如下命名空间using System.IO;using System.Text;二、详细代码方法一:将代码直接写在页面    ///     /// 数据导出    ///     ///     ///     private void Export(string FileType, string FileName)    {        Re

2191

gridview的内容导出excel中去

 asp.net 2.0中,gridview控件是个很不错的控件,如何将gridview中的数据导出EXCEL中去呢?特别是当gridview中的数据是分页显示时,要将整个gridview数据导出EXCEL中去呢?下面是解决的办法:下面是部分代码片段:defualt.aspx中,添加一个gridview控件                                  

jackyrongvip的专栏 955

Gridview导出EXCEL

为避免出错的准备 出错1:类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内解决方案:在后台文件中重载VerifyRenderingInServerForm方法,如:public override void VerifyRenderingInServerForm(Control control){} 出错2:只能在执行 Render() 的...

weixin_34378767的博客 143

GridView数据导出Excel实现

最近想整理一些词库,懒得手动找,又怕手一哆嗦有遗漏,决定写程序完成吧。 首先将数据GridView控件显示到页面上,效果如下:   接下来将GridView中的内容导出Excel,方法如下:    /// &lt;summary&gt;    /// 由GridView导出Excel    /// &lt;/summary&gt;    /// &lt;param name=...

weixin_34228617的博客 299

GridView的内容输出到Excel的两点注意

GridView控件的内容输出到Excel的方式网上有很多文章,其代码如下所示:ExcelExport.aspx.cs using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Securi

我的大箩筐 1342

GridView导出Excel

/// <summary> /// 直接由GridView导出Excel /// </summary> /// <param name="ctl">控件(一般是GridView)</param> /// <param name="FileName">导出的文件名</p...

tone1128的博客 408

变压器设计大师2.0(及注册机)

变压器设计大师2.0(及注册机)

上一篇: sql server的BCP导入导出
下一篇: Ajax的Get、Post方法的使用
accpyy
博客等级 码龄23年 45粉丝 5原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值