在VS2005中GridView导入Excel的两点小技巧

转载 2007年09月19日 16:24:00
VS2005中 GridView导入Excel的导入需要注意的几点
最近带的项目遇到GridView导入Excel问题,总结出几点:
1、如果出现下面的错误提示可用重载VerifyRenderingInServerForm方法解决。
错误提示:
类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内
在后台文件中重载VerifyRenderingInServerForm方法,如:

public override void VerifyRenderingInServerForm(Control control)
{
     //base.VerifyRenderingInServerForm(control);
}


2、如果设置为 GetEncoding("GB2312"),导出的文件将会出现乱码。
可用Response.ContentEncoding = System.Text.Encoding.UTF7;
或者Encoding.UTF8等来解决,不过导入格式和字体上个人感觉UTF7比UTF8效果好些;
因人而异了:)

相关代码如下:

Web.config配置: <?xml version="1.0"?>
<configuration>
    <appSettings>
        <!--数据库连接串-->
        <add key="ConnectionString" value="data source=.;initial catalog=Northwind;user id=sa;password=sa;persist security info=true;packet size=4096"/>
    </appSettings>
    <connectionStrings/>
    <system.web>
        <compilation debug="true"/>
        <authentication mode="Windows"/>
    </system.web>
</configuration>


ASPX页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AllowPaging="true" OnPageIndexChanging="Paging">
        </asp:GridView>
    </div>
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="导出到Excel" />
    </form>
</body>
</html>


实例代码:
/**//*
* // by XiaoYin [10/22/2006]
*/
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Xml;

public partial class _Default : System.Web.UI.Page
{
    /**//// <summary>
    /// 链接字符串
    /// </summary>
    public string ConnectString
    {
        get
        {
            return ConfigurationManager.AppSettings["ConnectionString"];
        }
    }

    /**//// <summary>
    /// 重载VerifyRenderingInServerForm方法
    /// 确认在运行时为指定的 ASP.NET 服务器控件呈现 HtmlForm 控件。
    /// </summary>
    /// <param name="control">ASP.NET 服务器控件,它必须位于 HtmlForm 控件中</param>
    public override void VerifyRenderingInServerForm(Control control)
    {
        //base.VerifyRenderingInServerForm(control);
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            BindData();
        }
    }

    /**//// <summary>
    /// 绑定数据
    /// </summary>
    public void BindData()
    {
        // 查询
        string query = "SELECT * FROM Categories";
        SqlConnection myConnection = new SqlConnection(ConnectString);
        SqlDataAdapter ad = new SqlDataAdapter(query, myConnection);
        DataSet ds = new DataSet();
        ad.Fill(ds, "Categories");
        GridView1.DataSource = ds;
        GridView1.DataBind();
    }

    /**//// <summary>
    /// 内存分页
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Paging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        BindData();
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "GB2312";
        Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
        //gaoyang [10/21/2006] 经测试如果设置为 GetEncoding("GB2312"),导出的文件将会出现乱码。
        Response.ContentEncoding = System.Text.Encoding.UTF7;

        //设置输出文件类型为excel文件。
        Response.ContentType = "application/ms-excel";
        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
        this.GridView1.RenderControl(oHtmlTextWriter);
        Response.Output.Write(oStringWriter.ToString());
        Response.Flush();
        Response.End();
    }
}
  

在VS2005中 GridView导入Excel的两点小技巧

VS2005中 GridView导入Excel的导入需要注意的几点最近带的项目遇到GridView导入Excel问题,总结出几点:1、如果出现下面的错误提示可用重载VerifyRenderingInS...
  • sean20032000
  • sean20032000
  • 2008年09月25日 10:20
  • 465

在VS2005中 GridView导入Excel的两点小技巧 VerifyRenderingInServerForm

VS2005中 GridView导入Excel的导入需要注意的几点最近带的项目遇到GridView导入Excel问题,总结出几点:1、如果出现下面的错误提示可用重载VerifyRenderingInS...
  • kRiSnI
  • kRiSnI
  • 2007年04月26日 16:01
  • 1152

在VS2005中GridView导入Excel的两点小技巧

VS2005中 GridView导入Excel的导入需要注意的几点 最近带的项目遇到GridView导入Excel问题,总结出几点: 1、如果出现下面的错误提示可...
  • slove_cao
  • slove_cao
  • 2007年09月10日 13:38
  • 476

asp.net 将本地excel表导入网页 并在gridview中显示

思路:用asp:FileUpload控件将excel文件上传到服务器,然后根据服务器的物理地址将该文件绑定到gridview,最后再将该文件删除 string strFile = Server.Ma...
  • sck0088
  • sck0088
  • 2015年06月03日 11:35
  • 307

.net将Excel文件导入到GridView中

 1.  新建BaseFunction.cs文件,如下:using System;using System.Data;using System.Data.OleDb;  public class Ba...
  • xue1225go
  • xue1225go
  • 2009年04月15日 17:45
  • 2725

在VS2005中 GridView导入Excel

最近带的项目遇到GridView导入Excel问题,总结出几点:1、如果出现下面的错误提示可用重载VerifyRenderingInServerForm方法解决。错误提示:类型“GridView”的控...
  • haok123
  • haok123
  • 2006年11月06日 14:22
  • 1020

VS2005操作excel所需的类及文件

1.     VS2005添加COM Project-> addclass -> MFC -> MFC CLASS FROM TypeLib 选择:_Application/_Workbo...
  • zhanglidn013
  • zhanglidn013
  • 2014年08月28日 16:38
  • 961

导入Excel后绑定GridView实例

项目中经常用到导入导出的例子,前面做了导出的例子,现在把导入Excel的数据的例子也把它晾出来,不足之处,请大家多多指教。 1.导入前的视图Excel和页面视图 2.导入后的视图 3...
  • loveheronly
  • loveheronly
  • 2011年08月24日 16:44
  • 2755

在VS2005中 GridView导入Excel的两点小技巧-附源码

VS2005中 GridView导入Excel的导入需要注意的几点最近带的项目遇到GridView导入Excel问题,总结出几点:1、如果出现下面的错误提示可用重载VerifyRenderingInS...
  • qvyyy
  • qvyyy
  • 2007年01月08日 17:14
  • 719

asp.net将页面中gridview中的数据导入excel表中

using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;...
  • chenguang79
  • chenguang79
  • 2010年03月16日 22:44
  • 1983
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在VS2005中GridView导入Excel的两点小技巧
举报原因:
原因补充:

(最多只允许输入30个字)