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

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效果好些;
因人而异了:)

源码下载地址:http://bbs.52happy.net/read.php?tid=219811

相关代码如下:

Web.config配置:

在VS2005中 GridView导入Excel的两点小技巧 <? xml version="1.0" ?>
在VS2005中 GridView导入Excel的两点小技巧
<!--  
在VS2005中 GridView导入Excel的两点小技巧    注意: 除了手动编辑此文件以外,您还可以使用 
在VS2005中 GridView导入Excel的两点小技巧    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
在VS2005中 GridView导入Excel的两点小技巧     “网站”->“Asp.Net 配置”选项。
在VS2005中 GridView导入Excel的两点小技巧    设置和注释的完整列表在 
在VS2005中 GridView导入Excel的两点小技巧    machine.config.comments 中,该文件通常位于 
在VS2005中 GridView导入Excel的两点小技巧    \Windows\Microsoft.Net\Framework\v2.x\Config 中
在VS2005中 GridView导入Excel的两点小技巧
-->
在VS2005中 GridView导入Excel的两点小技巧
< configuration >
在VS2005中 GridView导入Excel的两点小技巧    
< appSettings >
在VS2005中 GridView导入Excel的两点小技巧        
<!-- 数据库连接串 -->
在VS2005中 GridView导入Excel的两点小技巧        
< add  key ="ConnectionString"  value ="data source=.;initial catalog=Northwind;user id=sa;password=sa;persist security info=true;packet size=4096" />
在VS2005中 GridView导入Excel的两点小技巧    
</ appSettings >
在VS2005中 GridView导入Excel的两点小技巧    
< connectionStrings />
在VS2005中 GridView导入Excel的两点小技巧    
< system .web >
在VS2005中 GridView导入Excel的两点小技巧        
<!--  
在VS2005中 GridView导入Excel的两点小技巧            设置 compilation debug="true" 将调试符号插入
在VS2005中 GridView导入Excel的两点小技巧            已编译的页面中。但由于这会 
在VS2005中 GridView导入Excel的两点小技巧            影响性能,因此只在开发过程中将此值 
在VS2005中 GridView导入Excel的两点小技巧            设置为 true。
在VS2005中 GridView导入Excel的两点小技巧        
-->
在VS2005中 GridView导入Excel的两点小技巧        
< compilation  debug ="true" />
在VS2005中 GridView导入Excel的两点小技巧        
<!--
在VS2005中 GridView导入Excel的两点小技巧            通过 <authentication> 节可以配置 ASP.NET 使用的 
在VS2005中 GridView导入Excel的两点小技巧            安全身份验证模式,
在VS2005中 GridView导入Excel的两点小技巧            以标识传入的用户。 
在VS2005中 GridView导入Excel的两点小技巧        
-->
在VS2005中 GridView导入Excel的两点小技巧        
< authentication  mode ="Windows" />
在VS2005中 GridView导入Excel的两点小技巧        
<!--
在VS2005中 GridView导入Excel的两点小技巧            如果在执行请求的过程中出现未处理的错误,
在VS2005中 GridView导入Excel的两点小技巧            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
在VS2005中 GridView导入Excel的两点小技巧            开发人员通过该节可以配置
在VS2005中 GridView导入Excel的两点小技巧            要显示的 html 错误页
在VS2005中 GridView导入Excel的两点小技巧            以代替错误堆栈跟踪。
在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
在VS2005中 GridView导入Excel的两点小技巧            <error statusCode="403" redirect="NoAccess.htm" />
在VS2005中 GridView导入Excel的两点小技巧            <error statusCode="404" redirect="FileNotFound.htm" />
在VS2005中 GridView导入Excel的两点小技巧        </customErrors>
在VS2005中 GridView导入Excel的两点小技巧        
-->
在VS2005中 GridView导入Excel的两点小技巧    
</ system.web >
在VS2005中 GridView导入Excel的两点小技巧
</ configuration >
在VS2005中 GridView导入Excel的两点小技巧

ASPX页面代码:

在VS2005中 GridView导入Excel的两点小技巧 < %@ Page  Language ="C#"  AutoEventWireup ="true"   CodeFile ="Default.aspx.cs"  Inherits ="_Default"  % >
在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧
< html  xmlns ="http://www.w3.org/1999/xhtml"   >
在VS2005中 GridView导入Excel的两点小技巧
< head  runat ="server" >
在VS2005中 GridView导入Excel的两点小技巧    
< title > 无标题页 </ title >
在VS2005中 GridView导入Excel的两点小技巧
</ head >
在VS2005中 GridView导入Excel的两点小技巧
< body >
在VS2005中 GridView导入Excel的两点小技巧    
< form  id ="form1"  runat ="server" >
在VS2005中 GridView导入Excel的两点小技巧    
< div >
在VS2005中 GridView导入Excel的两点小技巧        
&nbsp;
在VS2005中 GridView导入Excel的两点小技巧        
< asp:GridView  ID ="GridView1"  runat ="server"  AllowPaging ="true"  OnPageIndexChanging ="Paging" >
在VS2005中 GridView导入Excel的两点小技巧        
</ asp:GridView >
在VS2005中 GridView导入Excel的两点小技巧    
在VS2005中 GridView导入Excel的两点小技巧    
</ div >
在VS2005中 GridView导入Excel的两点小技巧        
< asp:Button  ID ="Button1"  runat ="server"  OnClick ="Button1_Click"  Text ="导出到Excel"   />
在VS2005中 GridView导入Excel的两点小技巧    
</ form >
在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧
</ body >
在VS2005中 GridView导入Excel的两点小技巧
</ html >
在VS2005中 GridView导入Excel的两点小技巧


实例代码:

在VS2005中 GridView导入Excel的两点小技巧 /*
在VS2005中 GridView导入Excel的两点小技巧 *    // by XiaoYin [10/22/2006]
在VS2005中 GridView导入Excel的两点小技巧 
*/

在VS2005中 GridView导入Excel的两点小技巧
using  System;
在VS2005中 GridView导入Excel的两点小技巧
using  System.Data;
在VS2005中 GridView导入Excel的两点小技巧
using  System.Configuration;
在VS2005中 GridView导入Excel的两点小技巧
using  System.Web;
在VS2005中 GridView导入Excel的两点小技巧
using  System.Web.Security;
在VS2005中 GridView导入Excel的两点小技巧
using  System.Web.UI;
在VS2005中 GridView导入Excel的两点小技巧
using  System.Web.UI.WebControls;
在VS2005中 GridView导入Excel的两点小技巧
using  System.Web.UI.WebControls.WebParts;
在VS2005中 GridView导入Excel的两点小技巧
using  System.Web.UI.HtmlControls;
在VS2005中 GridView导入Excel的两点小技巧
using  System.Data.SqlClient;
在VS2005中 GridView导入Excel的两点小技巧
using  System.Xml;
在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧
public  partial  class  _Default : System.Web.UI.Page 
在VS2005中 GridView导入Excel的两点小技巧
{
在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧    
/// <summary>
在VS2005中 GridView导入Excel的两点小技巧    
/// 链接字符串
在VS2005中 GridView导入Excel的两点小技巧    
/// </summary>

在VS2005中 GridView导入Excel的两点小技巧    public string ConnectString
在VS2005中 GridView导入Excel的两点小技巧    
{
在VS2005中 GridView导入Excel的两点小技巧        
get
在VS2005中 GridView导入Excel的两点小技巧        
{
在VS2005中 GridView导入Excel的两点小技巧            
return ConfigurationManager.AppSettings["ConnectionString"];
在VS2005中 GridView导入Excel的两点小技巧        }

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

在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧    
/// <summary>
在VS2005中 GridView导入Excel的两点小技巧    
/// 重载VerifyRenderingInServerForm方法
在VS2005中 GridView导入Excel的两点小技巧    
/// 确认在运行时为指定的 ASP.NET 服务器控件呈现 HtmlForm 控件。
在VS2005中 GridView导入Excel的两点小技巧    
/// </summary>
在VS2005中 GridView导入Excel的两点小技巧    
/// <param name="control">ASP.NET 服务器控件,它必须位于 HtmlForm 控件中</param>

在VS2005中 GridView导入Excel的两点小技巧    public override void VerifyRenderingInServerForm(Control control)
在VS2005中 GridView导入Excel的两点小技巧    
{
在VS2005中 GridView导入Excel的两点小技巧        
//base.VerifyRenderingInServerForm(control);
在VS2005中 GridView导入Excel的两点小技巧
    }

在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧    
protected void Page_Load(object sender, EventArgs e)
在VS2005中 GridView导入Excel的两点小技巧    
{
在VS2005中 GridView导入Excel的两点小技巧        
if (!Page.IsPostBack)
在VS2005中 GridView导入Excel的两点小技巧        
{
在VS2005中 GridView导入Excel的两点小技巧            BindData();
在VS2005中 GridView导入Excel的两点小技巧        }

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

在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧    
/// <summary>
在VS2005中 GridView导入Excel的两点小技巧    
/// 绑定数据
在VS2005中 GridView导入Excel的两点小技巧    
/// </summary>

在VS2005中 GridView导入Excel的两点小技巧    public void BindData()
在VS2005中 GridView导入Excel的两点小技巧    
{
在VS2005中 GridView导入Excel的两点小技巧        
// 查询
在VS2005中 GridView导入Excel的两点小技巧
        string query = "SELECT * FROM Categories";
在VS2005中 GridView导入Excel的两点小技巧        SqlConnection myConnection 
= new SqlConnection(ConnectString);
在VS2005中 GridView导入Excel的两点小技巧        SqlDataAdapter ad 
= new SqlDataAdapter(query, myConnection);
在VS2005中 GridView导入Excel的两点小技巧        DataSet ds 
= new DataSet();
在VS2005中 GridView导入Excel的两点小技巧        ad.Fill(ds, 
"Categories");
在VS2005中 GridView导入Excel的两点小技巧        GridView1.DataSource 
= ds;
在VS2005中 GridView导入Excel的两点小技巧        GridView1.DataBind();
在VS2005中 GridView导入Excel的两点小技巧    }

在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧    
/// <summary>
在VS2005中 GridView导入Excel的两点小技巧    
/// 内存分页
在VS2005中 GridView导入Excel的两点小技巧    
/// </summary>
在VS2005中 GridView导入Excel的两点小技巧    
/// <param name="sender"></param>
在VS2005中 GridView导入Excel的两点小技巧    
/// <param name="e"></param>

在VS2005中 GridView导入Excel的两点小技巧    protected void Paging(object sender, GridViewPageEventArgs e)
在VS2005中 GridView导入Excel的两点小技巧    
{
在VS2005中 GridView导入Excel的两点小技巧        GridView1.PageIndex 
= e.NewPageIndex;
在VS2005中 GridView导入Excel的两点小技巧        BindData();
在VS2005中 GridView导入Excel的两点小技巧    }

在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧    
protected void Button1_Click(object sender, EventArgs e)
在VS2005中 GridView导入Excel的两点小技巧    
{
在VS2005中 GridView导入Excel的两点小技巧        Response.Clear();
在VS2005中 GridView导入Excel的两点小技巧        Response.Buffer 
= true;
在VS2005中 GridView导入Excel的两点小技巧        Response.Charset 
= "GB2312";
在VS2005中 GridView导入Excel的两点小技巧        Response.AppendHeader(
"Content-Disposition""attachment;filename=FileName.xls");
在VS2005中 GridView导入Excel的两点小技巧        
//gaoyang [10/21/2006] 经测试如果设置为 GetEncoding("GB2312"),导出的文件将会出现乱码。
在VS2005中 GridView导入Excel的两点小技巧
        Response.ContentEncoding = System.Text.Encoding.UTF7;
在VS2005中 GridView导入Excel的两点小技巧
在VS2005中 GridView导入Excel的两点小技巧        
//设置输出文件类型为excel文件。 
在VS2005中 GridView导入Excel的两点小技巧
        Response.ContentType = "application/ms-excel";
在VS2005中 GridView导入Excel的两点小技巧        System.IO.StringWriter oStringWriter 
= new System.IO.StringWriter();
在VS2005中 GridView导入Excel的两点小技巧        System.Web.UI.HtmlTextWriter oHtmlTextWriter 
= new System.Web.UI.HtmlTextWriter(oStringWriter);
在VS2005中 GridView导入Excel的两点小技巧        
this.GridView1.RenderControl(oHtmlTextWriter);
在VS2005中 GridView导入Excel的两点小技巧        Response.Output.Write(oStringWriter.ToString());
在VS2005中 GridView导入Excel的两点小技巧        Response.Flush();
在VS2005中 GridView导入Excel的两点小技巧        Response.End();
在VS2005中 GridView导入Excel的两点小技巧    }

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

你可能感兴趣的:(GridView)