62,075
社区成员
发帖
与我相关
我的任务
分享
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
<!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:DataGrid ID="DataGrid1" runat="server" OnItemDataBound="DataGrid1_ItemDataBound"></asp:DataGrid>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="输出Excel" /></div>
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;
public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataGrid1.DataSource = CreateDataSource();
DataGrid1.DataBind();
}
ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("身份证号码", typeof(string)));
dt.Columns.Add(new DataColumn("图书单价", typeof(decimal)));
dt.Columns.Add(new DataColumn("购买数量", typeof(Int32)));
dt.Columns.Add(new DataColumn("总价格", typeof(decimal)));
for (int i = 0; i < 30; i++)
{
dr = dt.NewRow();
dr[0] = "123456789123456789";
dr[1] = 100 * i / 3.0;
dr[2] = i + 5;
dr[3] = (decimal)dr[1] * (Int32)dr[2];
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.DataGrid1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Cells[0].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
e.Item.Cells[3].Attributes.Add("style", "vnd.ms-excel.numberformat:¥#,###.00");
}
}
}
private void ButtonExport_Click(object sender, System.EventArgs e)
{
ExportDataGrid("application/vnd.ms-excel",System.DateTime.Now.ToString("yyyyMMddmmhhss")+".xls");
}
private void ExportDataGrid(string FileType, string FileName) //从DataGrid导出
{
Response.ContentType = FileType;
Response.Charset = "GB2312"; //设置字符集类型
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
//追加响应的头部信息,即文件名.
Response.AppendHeader("Content-Disposition", "attachment;filename=" +HttpUtility.UrlEncode(FileName,System.Text.Encoding.UTF8).ToString());
this.EnableViewState = false;
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(sw);
TypeParticular.RenderControl(hw);
Response.Write(sw.ToString());
Response.End();
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
Response.Charset = "GBK";
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView1.AllowPaging = false;//导出前先取消分页,以便能将所有数据导出。
DataBind(); //再重新绑定一次数据
GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
GridView1.AllowPaging = true;//导出后先取消分页,以便能将所有数据导出。
DataBind();
}
protected void BtnPrint_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");
//Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.doc");
// 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
Response.ContentEncoding = System.Text.Encoding.UTF7;
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
//Response.ContentType = "application/ms-word";
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.AfficheGV.RenderControl(oHtmlTextWriter);
//AfficheGV是gridview
Response.Output.Write(oStringWriter.ToString());
Response.Flush();
Response.End();
////////////////////////////
}
//using System.IO;导出到execl
public void WriteDSToExcel(DataTable dt)
{
string strFile = "";
string path = "";
// DataTable dt = ds.Tables[0];
//文件信息设置
strFile = strFile + "LogBackUp";
strFile = strFile + DateTime.Now.ToString("yyyyMMddhhmmss");
strFile = strFile + ".xls";
path = Server.MapPath(strFile);
System.IO.FileStream fs = new FileStream(path, System.IO.FileMode.Create, System.IO.FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, new System.Text.UnicodeEncoding());
//画表头
for (int i = 0; i < dt.Columns.Count; i++)
{
sw.Write(dt.Columns[i].ColumnName);
sw.Write("\t");
}
sw.WriteLine("");
//画表体
for (int i = 0; i < dt.Rows.Count; i++)
{
sw.Write(dt.Rows[i]["id"].ToString());
sw.Write("\t");
sw.Write(dt.Rows[i]["dc"].ToString());
sw.Write("\t");
sw.Write(dt.Rows[i]["Num"].ToString());
//sw.Write("\t");
//sw.Write(dt.Rows[i]["cityID"].ToString());
//sw.Write("\t");
//sw.Write(dt.Rows[i]["areaID"].ToString());
//sw.Write("\t");
//sw.Write(dt.Rows[i]["Enabled"].ToString());
sw.WriteLine("");
}
sw.Flush();
sw.Close();
}