博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
主要解决了Gridview导出到Excel
阅读量:5060 次
发布时间:2019-06-12

本文共 4999 字,大约阅读时间需要 16 分钟。

前台代码如下不多说:
1 <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" EnableEventValidation="false"%> 2  3  4  5     无标题页 6     12 13 14     
15
19
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
53
54 55
View Code

后台代码如下:注释很详细不再累赘

1 using System;  2 using System.Configuration;  3 using System.Data;  4 using System.Linq;  5 using System.Web;  6 using System.Web.Security;  7 using System.Web.UI;  8 using System.Web.UI.HtmlControls;  9 using System.Web.UI.WebControls; 10 using System.Web.UI.WebControls.WebParts; 11 using System.Xml.Linq; 12 using System.Data.SqlClient;///添加数据库操作的命名空间 13 using System.IO;///添加输出操作的命名空间 14 public partial class _Default : System.Web.UI.Page  15 { 16     ///  17     /// 绑定Gridview 控件的数据 18     ///  19     /// 
20 protected bool BindDB() 21 { 22 string sqlcon = ConfigurationManager.ConnectionStrings["DBString"].ConnectionString; 23 SqlConnection con = new SqlConnection(sqlcon); 24 con.Open(); 25 string strSelect = "select * from Student "; 26 SqlDataAdapter sda = new SqlDataAdapter(strSelect,sqlcon); 27 DataSet ds = new DataSet(); 28 sda.Fill(ds); 29 GridView1.DataSource = ds; 30 try 31 { 32 GridView1.DataBind(); 33 return true; 34 } 35 catch 36 { 37 return false; 38 } 39 finally 40 { 41 con.Close(); 42 } 43 } 44 protected void Page_Load(object sender, EventArgs e) 45 { 46 if (!IsPostBack) 47 { 48 BindDB();///数据库绑定 49 } 50 } 51 /// 52 /// Gridview 分页操作 没有分业的可以不添加此方法 53 /// 54 /// 55 /// 56 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 57 { 58 GridView1.PageIndex = e.NewPageIndex; 59 BindDB(); 60 } 61 /// 62 /// Gridview数据导出到Excel的操作 63 /// 64 /// 65 /// 66 protected void Button1_Click(object sender, EventArgs e) 67 { 68 #region 69 ///在导出的时候,如果某个字段为长数字(如身份证号码511922198507151512)、以0开头的编号(如0914490000) 70 ///之类的数据。如果不加处理在导出的Excel文件中将会被分别当作5.11922E+17和809111212来处理,这样与我们要达到的 71 ///实际效果不一致。所以我们要加以处理,即给单元格数据规定格式 72 ///即我们在导出的时候把类型改掉 73 //for (int i=0; i < GridView1.Rows.Count; i++) 74 //{ 75 // GridView1.Rows[i].Cells[4].Text = "'" + GridView1.Rows[i].Cells[4].Text; 76 //} 77 #endregion 78 79 ///另一种方式就是 80 ///解决思路:在Excel中作一个包含有"012457890"的内容,设定单元格的显示方式,然后保存成Html的文件, 81 ///在查看源代码. 发现在 CSS格式定义中有:td{mso-number-format:"\@";}.这样问题就容易解决了.我用的此种方式 82 83 GridView1.AllowPaging = false;///清除分页,便于导出数据 84 BindDB(); ///绑定Griedview数据 85 Response.ClearContent(); 86 Response.Charset = "GB2312"; ///设定输出的字符集 87 string strStyle = ""; ///设置输出格式 88 89 ///解决导出到Excel2003乱码问题 90 ///HttpUtility.UrlEncode("学生信息表.xls", System.Text.Encoding.UTF8).ToString()) 91 Response.AddHeader("content-disposition", "attachment; filename=" + 92 HttpUtility.UrlEncode("学生信息表.xls", System.Text.Encoding.UTF8).ToString()); 93 Response.ContentType = "application/excel"; ///设置导出文件的格式 94 StringWriter sw = new StringWriter(); 95 HtmlTextWriter htw = new HtmlTextWriter(sw); 96 sw.WriteLine(strStyle); ///读取格式 97 98 ///GridView1.Columns[11].Visible = false; ///某一列Gridview数据不导出 99 100 GridView1.RenderControl(htw);101 Response.Write(sw.ToString()); ///把HTML写回浏览器 102 Response.End();103 GridView1.AllowPaging = true;///恢复分业104 BindDB();///绑定Griedview数据 105 }106 /// 107 /// 此方法一定要重载,否则报错!108 /// 109 /// 110 public override void VerifyRenderingInServerForm(Control control)111 {112 }113 }
View Code

 

主要解决了Gridview导出到Excel  
 

转载于:https://www.cnblogs.com/zxd543/archive/2013/05/15/3079482.html

你可能感兴趣的文章
[翻译] USING GIT IN XCODE [4] 在XCODE中使用GIT[4]
查看>>
简化通知中心的使用
查看>>
SpringMVC的@Validated校验注解使用方法
查看>>
Python之os模块
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>
【蓝桥杯】PREV-21 回文数字
查看>>
html 简介
查看>>
python使用上下文对代码片段进行计时,非装饰器
查看>>
js中比较实用的函数用法
查看>>
安装预览版镜像后无法检测到预览版更新的解决方案
查看>>
【bzoj5099】[POI2018]Pionek 双指针法
查看>>
别让安全问题拖慢了 DevOps!
查看>>
JAR打包和运行
查看>>
session如何保存在专门的StateServer服务器中
查看>>
react展示数据
查看>>
测试计划
查看>>
idea设置自定义图片
查看>>
[高级]Android多线程任务优化1:探讨AsyncTask的缺陷
查看>>
选择器
查看>>
rownum 的使用
查看>>