在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的两点小技巧-附源码}

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

 

本文转自

高阳 51CTO博客,原文链接:http://blog.51cto.com/xiaoyinnet/196546 ,如需转载请自行联系原作者

上一篇:Centos7中使用7zip压缩工具


下一篇:visual studio 使用正则查找或替换示例