导出excel的两种方式
2006-04-21 11:30
405 查看
第一种方法(保存在服务器端)
/// <summary>
/// 输出excel报表
/// </summary>
/// <param name="ds">DataSet内存数据</param>
/// <param name="FileName"> 保存文件名</param>
public string CreateExcel(DataSet ds,string FileName)
{
try
{
if(ds.Tables .Count >0)
if(ds.Tables [0].Rows .Count >0)
{
string dir = Server.MapPath("../../DATA/");
if(!System.IO.Directory.Exists(dir))
{
System.IO.Directory.CreateDirectory(dir);
}
string urlName= DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")+FileName +".xls";
string fileName = dir + urlName;
StringBuilder content=new StringBuilder ();
using(System.IO.FileStream fs = System.IO.File.Create(fileName))
{
for(int j=0;j<ds.Tables [0].Columns.Count;j++)
{
content.Append (ds.Tables [0].Columns[j].ColumnName.ToString()+"/t");
}
content.Append (Environment.NewLine);
for(int i=0;i<ds.Tables [0].Rows.Count;i++)
{
for(int j=0;j<ds.Tables [0].Columns .Count;j++)
{
content.Append (ds.Tables[0] .Rows[i][j].ToString()+"/t");
}
content.Append (Environment.NewLine);
}
byte[] b = System.Text.Encoding.Default.GetBytes(content.ToString ());
fs.Write(b,0,b.Length);
fs.Close();
return "<script language=javascript>alert('导出Excel成功!')</script>";
}
}
return "<script language=javascript>alert('表中没有数据!')</script>";
}
catch
{
return "<script language=javascript>alert('导出Excel失败!')</script>";
}
}
调用方式:
//打印按钮事件
private void cmd_output_Click(object sender, System.EventArgs e)
{
this.Response.Write (this.output.CreateExcel (ds1,"教学班信息")); //ds1为DataSet
this.Response.End ();
}
第二种(保存在客户端,由客户端选择保存路径)
/// <summary>
/// 输出excel报表
/// </summary>
/// <param name="ds">DataSet内存数据</param>
/// <param name="FileName"> 保存文件名</param>
///<param name="dg" >datagrid 数据</param>
public string CreateExcel(DataSet ds,string FileName,DataGrid dg)
try
{
if(ds.Tables .Count >0)
if(ds.Tables [0].Rows .Count >0)
{
string urlName= DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")+FileName +".xls";
DataGrid dg1 = new DataGrid ();//创建新的datagrid
dg1 = dg;//dg是要导出数据的datagrid
dg1.AllowPaging = false;//不启用分页
dg1.PageSize = ds.Tables [0].Rows.Count ;//设置页面显示大小
dg1.DataSource = ds;//绑定数据
dg1.DataBind ();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response .Buffer =true;
HttpContext.Current.Response.Charset="UTF8";
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename="+Page.Server.UrlPathEncode (urlName)); //对文件名重新进行编码,否则为乱码
HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流格式
HttpContext.Current.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);
dg1.RenderControl(oHtmlTextWriter);
return oStringWriter.ToString();
}
return "<script language=javascript>alert('表中没有数据!')</script>";
}
catch
{
return "<script language=javascript>alert('导出Excel失败!')</script>";
}
调用方式
private void cmd_output_Click(object sender, System.EventArgs e)
{
this.Response.Write (this.output.CreateExcel (ds1,"教学班信息",this.dg_jxb ));//dg_jxb为要导出数据的datagrid
this.Response.End ();
}
/// <summary>
/// 输出excel报表
/// </summary>
/// <param name="ds">DataSet内存数据</param>
/// <param name="FileName"> 保存文件名</param>
public string CreateExcel(DataSet ds,string FileName)
{
try
{
if(ds.Tables .Count >0)
if(ds.Tables [0].Rows .Count >0)
{
string dir = Server.MapPath("../../DATA/");
if(!System.IO.Directory.Exists(dir))
{
System.IO.Directory.CreateDirectory(dir);
}
string urlName= DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")+FileName +".xls";
string fileName = dir + urlName;
StringBuilder content=new StringBuilder ();
using(System.IO.FileStream fs = System.IO.File.Create(fileName))
{
for(int j=0;j<ds.Tables [0].Columns.Count;j++)
{
content.Append (ds.Tables [0].Columns[j].ColumnName.ToString()+"/t");
}
content.Append (Environment.NewLine);
for(int i=0;i<ds.Tables [0].Rows.Count;i++)
{
for(int j=0;j<ds.Tables [0].Columns .Count;j++)
{
content.Append (ds.Tables[0] .Rows[i][j].ToString()+"/t");
}
content.Append (Environment.NewLine);
}
byte[] b = System.Text.Encoding.Default.GetBytes(content.ToString ());
fs.Write(b,0,b.Length);
fs.Close();
return "<script language=javascript>alert('导出Excel成功!')</script>";
}
}
return "<script language=javascript>alert('表中没有数据!')</script>";
}
catch
{
return "<script language=javascript>alert('导出Excel失败!')</script>";
}
}
调用方式:
//打印按钮事件
private void cmd_output_Click(object sender, System.EventArgs e)
{
this.Response.Write (this.output.CreateExcel (ds1,"教学班信息")); //ds1为DataSet
this.Response.End ();
}
第二种(保存在客户端,由客户端选择保存路径)
/// <summary>
/// 输出excel报表
/// </summary>
/// <param name="ds">DataSet内存数据</param>
/// <param name="FileName"> 保存文件名</param>
///<param name="dg" >datagrid 数据</param>
public string CreateExcel(DataSet ds,string FileName,DataGrid dg)
try
{
if(ds.Tables .Count >0)
if(ds.Tables [0].Rows .Count >0)
{
string urlName= DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")+FileName +".xls";
DataGrid dg1 = new DataGrid ();//创建新的datagrid
dg1 = dg;//dg是要导出数据的datagrid
dg1.AllowPaging = false;//不启用分页
dg1.PageSize = ds.Tables [0].Rows.Count ;//设置页面显示大小
dg1.DataSource = ds;//绑定数据
dg1.DataBind ();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response .Buffer =true;
HttpContext.Current.Response.Charset="UTF8";
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename="+Page.Server.UrlPathEncode (urlName)); //对文件名重新进行编码,否则为乱码
HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流格式
HttpContext.Current.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);
dg1.RenderControl(oHtmlTextWriter);
return oStringWriter.ToString();
}
return "<script language=javascript>alert('表中没有数据!')</script>";
}
catch
{
return "<script language=javascript>alert('导出Excel失败!')</script>";
}
调用方式
private void cmd_output_Click(object sender, System.EventArgs e)
{
this.Response.Write (this.output.CreateExcel (ds1,"教学班信息",this.dg_jxb ));//dg_jxb为要导出数据的datagrid
this.Response.End ();
}
相关文章推荐
- DataGridView扩展方法行号、全选、导出到Excel(引用excel组件、生成html两种方式)
- JXL和POI两种导出excel方式
- DataGridView扩展方法行号、全选、导出到Excel(引用excel组件、生成html两种方式)
- 调用Excel导出文件的两种方式,主要解决了资源释放的问题。
- Java导出数据为EXCEL的两种方式JXL和POI
- .NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格
- 使用java开发导出excel的两种方式
- C#导出数据到Excel的两种方式:基于COM组件和NPIO
- datagridview 导出excel的两种方式
- C#导出数据到Excel的两种方式:基于COM组件和NPIO
- jxl方式导出excel
- ASP.NET通过流方式导出EXCEL并且单元格换行
- Java处理excel两种不同的方式
- 导出EXCEL【Web方式HTML通过拼接html中table】
- sqlserver 脚本方式导出数据到excel
- DLL中导出函数的两种方式(dllexport与.def文件)
- NPOI方式导出Excel
- 用JS进行Excel 三种导出方式
- GridView导出成Excel字符"0"丢失/数字丢失的处理方式
- 导出DLL两种方式