.Net导出数据到Excle
2012-03-01 16:44
183 查看
using System;
using System.Collections;
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.OracleClient;
using System.Text;
public partial class ExportExcle : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
//导出Excel按钮
protected void btnExport_Click(object sender, EventArgs e)
{
string connstring = "User Id=***;Password=***;Data Source=***";
//实例化OracleConnection对象
using (OracleConnection conn = new OracleConnection(connstring))
{
conn.Open();
OracleDataAdapter oda=new OracleDataAdapter();
DataSet ds = new DataSet();
//实例化OracleCommand对象
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from Table where rownum <=10";
oda.SelectCommand = cmd;
oda.Fill(ds,"table");
if (ds != null)
{
string CSVstring = ExportCSV(ds.Tables[0]);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ClearHeaders();
System.Web.HttpContext.Current.Response.ClearContent();
System.Web.HttpContext.Current.Response.ContentType = "applicationshlnd.xls";
System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("Excel文件名", System.Text.Encoding.UTF8) + ".xls");
byte[] csvBytes = Encoding.Unicode.GetBytes(CSVstring);
System.Web.HttpContext.Current.Response.AddHeader("Content-Length", (csvBytes.Length + 2).ToString());
System.Web.HttpContext.Current.Response.BinaryWrite(new byte[] { 0xFF, 0xFE });
System.Web.HttpContext.Current.Response.BinaryWrite(csvBytes);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();
}
}
}
public string ExportCSV(DataTable table)
{
System.Text.StringBuilder output =new System.Text.StringBuilder();
string delim;
output.Append("<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">");
delim = "";
output.Append("<tr>");
foreach(DataColumn col in table.Columns)
{
output.Append("<td style=\"vnd.ms-excel.numberformat:@\">");
output.Append(col.ColumnName);
output.Append("</td>");
}
output.Append("</tr>");
foreach(DataRow row in table.Rows)
{
delim ="";
output.Append("<tr>");
foreach(Object value in row.ItemArray)
{
output.Append("<TD style=\"vnd.ms-excel.numberformat:@\">");
output.Append(value.ToString());
output.Append("</TD>");
}
output.Append("</tr>");
}
output.Append("</table>");
return output.ToString();
}
}
using System.Collections;
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.OracleClient;
using System.Text;
public partial class ExportExcle : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
//导出Excel按钮
protected void btnExport_Click(object sender, EventArgs e)
{
string connstring = "User Id=***;Password=***;Data Source=***";
//实例化OracleConnection对象
using (OracleConnection conn = new OracleConnection(connstring))
{
conn.Open();
OracleDataAdapter oda=new OracleDataAdapter();
DataSet ds = new DataSet();
//实例化OracleCommand对象
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from Table where rownum <=10";
oda.SelectCommand = cmd;
oda.Fill(ds,"table");
if (ds != null)
{
string CSVstring = ExportCSV(ds.Tables[0]);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ClearHeaders();
System.Web.HttpContext.Current.Response.ClearContent();
System.Web.HttpContext.Current.Response.ContentType = "applicationshlnd.xls";
System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("Excel文件名", System.Text.Encoding.UTF8) + ".xls");
byte[] csvBytes = Encoding.Unicode.GetBytes(CSVstring);
System.Web.HttpContext.Current.Response.AddHeader("Content-Length", (csvBytes.Length + 2).ToString());
System.Web.HttpContext.Current.Response.BinaryWrite(new byte[] { 0xFF, 0xFE });
System.Web.HttpContext.Current.Response.BinaryWrite(csvBytes);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();
}
}
}
public string ExportCSV(DataTable table)
{
System.Text.StringBuilder output =new System.Text.StringBuilder();
string delim;
output.Append("<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">");
delim = "";
output.Append("<tr>");
foreach(DataColumn col in table.Columns)
{
output.Append("<td style=\"vnd.ms-excel.numberformat:@\">");
output.Append(col.ColumnName);
output.Append("</td>");
}
output.Append("</tr>");
foreach(DataRow row in table.Rows)
{
delim ="";
output.Append("<tr>");
foreach(Object value in row.ItemArray)
{
output.Append("<TD style=\"vnd.ms-excel.numberformat:@\">");
output.Append(value.ToString());
output.Append("</TD>");
}
output.Append("</tr>");
}
output.Append("</table>");
return output.ToString();
}
}
相关文章推荐
- .Net导出数据到Excle
- SpringMVC 实现POI读取Excle文件中数据导入数据库(上传)、导出数据库中数据到Excle文件中(下载)
- 对.NET中导出数据到EXCEL的几种方法探讨 C1TrueDBGrid
- .net导出Excle和Word的方法(一)
- [转载].Net将数据导出Word
- .NET使用Office Open XML导出大量数据到 Excel
- .NET使用Office Open XML导出大量数据到 Excel
- .net的小技巧(定制VC#DataGrid列标题,数据导出到Excel)
- POI实现大数据EXCLE导入导出,解决内存溢出问题
- .net导出Excle和Word的方法(一)
- .net中将DataGridView内的数据导出为Excel表格
- 数据导出Excle
- .Net中导出数据到Excel(asp.net和winform程序中)
- .NET使用NPOI将数据导出/导入到Excel文件介绍
- .net解决数据导出excel时的格式问题
- 绝对可行的GridView中数据导出到Excle
- 导出Excle文件中数据到数据集
- 导出数据到Excle表格的方法详解
- .NET项目笔记——使用NPOI读取Excel导入数据和导出Excel的功能