前台代码如下不多说:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" EnableEventValidation="false"%>
<!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>
<style type="text/css">
#form1
{
height: 645px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333"
GridLines="None" Height="234px"
onpageindexchanging="GridView1_PageIndexChanging" Width="782px">
<PagerSettings FirstPageText="首页" LastPageText="尾页"
Mode="NextPreviousFirstLast" NextPageText="下一页" PreviousPageText="上一页" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:BoundField DataField="id" HeaderText="序号">
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="StuId" HeaderText="学号">
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="StuPwd" HeaderText="密码">
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="StuName" HeaderText="姓名">
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="StuCardId" HeaderText="身份证号">
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="TeaName" HeaderText="任课教师">
<ItemStyle HorizontalAlign="Center" />
</asp:BoundField>
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
<br />
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click"
Text="导出到Excel" />
</form>
</body>
</html>
后台代码如下:注释很详细不再累赘
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;///添加数据库操作的命名空间
using System.IO;///添加输出操作的命名空间
public partial class _Default : System.Web.UI.Page
{
/// <summary>
/// 绑定Gridview 控件的数据
/// </summary>
/// <returns></returns>
protected bool BindDB()
{
string sqlcon = ConfigurationManager.ConnectionStrings["DBString"].ConnectionString;
SqlConnection con = new SqlConnection(sqlcon);
con.Open();
string strSelect = "select * from Student ";
SqlDataAdapter sda = new SqlDataAdapter(strSelect,sqlcon);
DataSet ds = new DataSet();
sda.Fill(ds);
GridView1.DataSource = ds;
try
{
GridView1.DataBind();
return true;
}
catch
{
return false;
}
finally
{
con.Close();
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindDB();///数据库绑定
}
}
/// <summary>
/// Gridview 分页操作 没有分业的可以不添加此方法
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindDB();
}
/// <summary>
/// Gridview数据导出到Excel的操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
#region
///在导出的时候,如果某个字段为长数字(如身份证号码511922198507151512)、以0开头的编号(如0914490000)
///之类的数据。如果不加处理在导出的Excel文件中将会被分别当作5.11922E+17和809111212来处理,这样与我们要达到的
///实际效果不一致。所以我们要加以处理,即给单元格数据规定格式
///即我们在导出的时候把类型改掉
//for (int i=0; i < GridView1.Rows.Count; i++)
//{
// GridView1.Rows[i].Cells[4].Text = "'" + GridView1.Rows[i].Cells[4].Text;
//}
#endregion
///另一种方式就是
///解决思路:在Excel中作一个包含有"012457890"的内容,设定单元格的显示方式,然后保存成Html的文件,
///在查看源代码. 发现在 CSS格式定义中有:td{mso-number-format:"\@";}.这样问题就容易解决了.我用的此种方式
GridView1.AllowPaging = false;///清除分页,便于导出数据
BindDB(); ///绑定Griedview数据
Response.ClearContent();
Response.Charset = "GB2312"; ///设定输出的字符集
string strStyle = "<style>td{mso-number-format:\"\\@\";}</style>"; ///设置输出格式
///解决导出到Excel2003乱码问题
///HttpUtility.UrlEncode("学生信息表.xls", System.Text.Encoding.UTF8).ToString())
Response.AddHeader("content-disposition", "attachment; filename=" +
HttpUtility.UrlEncode("学生信息表.xls", System.Text.Encoding.UTF8).ToString());
Response.ContentType = "application/excel"; ///设置导出文件的格式
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
sw.WriteLine(strStyle); ///读取格式
///GridView1.Columns[11].Visible = false; ///某一列Gridview数据不导出
GridView1.RenderControl(htw);
Response.Write(sw.ToString()); ///把HTML写回浏览器
Response.End();
GridView1.AllowPaging = true;///恢复分业
BindDB();///绑定Griedview数据
}
/// <summary>
/// 此方法一定要重载,否则报错!
/// </summary>
/// <param name="control"></param>
public override void VerifyRenderingInServerForm(Control control)
{
}
}
主要解决了Gridview导出到Excel
图不会传。。。。
分享到:
相关推荐
在本示例中,我们将深入探讨如何使用Aspose库在.NET环境中根据模板导出Excel电子表格。这个过程涉及到多个步骤和技术,包括理解Aspose的API、模板设计以及数据注入。 首先,Aspose库提供了强大的Excel操作功能,...
为解决这个问题,可以采用流式处理(Streaming User Model)或分批处理。例如,使用SXSSF(Streaming Usermodel API)可以避免一次性加载所有数据,它会在磁盘上创建一个临时文件,从而减少内存占用。 4. **代码...
基于SpringBoot和POI实现单线程和多线程导出Excel.zip基于SpringBoot和POI实现单线程和多线程导出Excel.zip基于SpringBoot和POI实现单线程和多线程导出Excel.zip基于SpringBoot和POI实现单线程和多线程导出Excel.zip...
下面我们将深入探讨导出Excel功能的相关知识点。 1. **编程接口**:大多数情况下,开发人员会使用编程语言(如Python的pandas库,Java的Apache POI,C#的EPPlus等)来实现导出Excel功能。这些库提供了API,允许我们...
下面将详细介绍jQuery导出Excel的方法,以及相关知识点。 1. **jQuery插件:TableExport** 文件`tableExport.jquery.plugin-a891806`可能是一个名为TableExport的jQuery插件,它允许开发者将HTML表格数据导出为...
在IT行业中,易语言是一种基于汉语编程的编程环境,它以简单、直观的...通过阅读和分析这些源代码,可以深入理解易语言在处理表格数据和导出Excel方面的技术细节,这对于提升易语言编程技能和解决实际问题非常有帮助。
本文件只需修改一个属性,直接替换官方文件,引入即可解决导出excel的数字变成科学计数法的...本项目利用的是jquery扩展的datagrid-export.js输出excel,所以,前端输出文件格式的字段类型控制才是解决问题的关键所在。
- 需要注意文件名冲突的问题,本示例中通过在重复的文件名后面添加序号来解决这个问题。 - 确保所有参与导出的控件都实现了`IPrintable`接口,以便于统一处理。 - 对于不同类型的数据控件(如GridControl、Chart、...
在实际项目中,数据导出功能是常见的需求,例如数据分析、报表生成等场景,而layui提供的这个插件则解决了这个问题。 该插件的核心是`excel.js`和`excel.min.js`两个文件。`excel.js`是未压缩的源代码,方便开发者...
7. **流式处理和内存管理**:如果导出的Excel文件很大,一次性加载所有数据可能导致内存问题。使用POI的SXSSF(Streaming Usermodel API)可以解决这个问题,它将数据写入磁盘,而不是全部保留在内存中。 8. **文件...
Delphi DBGrid 导出 Excel 2010 Delphi DBGrid 是一个强大的数据-grid 控件,经常用于展示大量数据。然而,在实际应用中,我们经常需要将 DBGrid 中的数据导出到其他格式,例如 Excel,以便于数据分析和处理。下面...
"pb导出excel2007"这个主题涉及到的是如何在PowerBuilder中将数据窗口(DataWindow)的内容导出到Excel 2007格式的文件中。在实际开发中,有时我们需要将PB的数据窗口数据导出到Excel以便于分析、处理或分享,而这个...
它是一款轻量级的打印控件,主要用在浏览器环境中,用于解决网页打印的问题。LODOP提供了一套JavaScript接口,开发者可以调用这些接口来实现复杂的打印需求,包括设置页面样式、添加页眉页脚、自定义打印范围等。...
综上所述,通过上述方法的应用,我们可以有效解决ALV导出数据至Excel时出现的窜行问题。用户在操作过程中需要特别注意特殊字符和双引号的处理,同时应掌握Excel的文本解析规则。这样不仅能提高数据导出的准确性,也...
"C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法" 在导出Excel文件时,经常会遇到“文件格式与扩展名指定格式不一致”的问题,这是因为大多数人在导出Excel文件时,都是默认保存Excel的格式...
标题"**C#导出Excel复杂表头解决方案**"涉及的是在C#应用程序中如何高效地创建包含复杂结构的Excel表头,这在数据报告、数据分析或自动化办公场景中非常常见。复杂表头可能包括多级标题、合并单元格、自定义样式等。...
在EXTJS这个强大的JavaScript框架中,实现导出Excel功能是一项常见的需求。EXTJS提供了一种高效的方法来将数据导出到Excel格式,使得用户能够方便地处理和分析数据。在这个场景下,我们可以从以下几个关键知识点入手...
解决GridControl自带方法不能导出图片,多表头无法导出等问题,解决PivotGridControl导出时候自动分组的问题,真正做到所见所得的导出excel方法,并且支持多个控件一同导出同一个excel