导出excel的两种方式
来源:互联网 发布:2016年淘宝天猫交易额 编辑:程序博客网 时间:2024/05/16 11:24
第一种方法(保存在服务器端)
/// <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 ();
}
- 导出excel的两种方式
- datagridview 导出excel的两种方式
- poi导出Excel的两种方式
- 使用java开发导出excel的两种方式
- JS导出为Excel文件(两种方式)
- JXL和POI两种导出excel方式
- 导出excel的两种方法
- 导出excel的两种方法
- excel导入导出的两种写法
- JS导出EXCEL的两种方法
- struts2 导出excel的两种写法
- C#导出数据到Excel的两种方式:基于COM组件和NPIO
- C#导出数据到Excel的两种方式:基于COM组件和NPIO
- Dll导出函数的两种方式
- 导出Excel的几种方式
- 导出excel的三种方式
- java创建excel的两种方式
- Java读取excel的两种方式
- 学习语言
- 关于sql备份到其他服务器的问题
- 不要随便牵手,更不要随便随便放手.
- 编写跨平台Java程序注意事项
- 读取XML并在TreeCtrl中显示
- 导出excel的两种方式
- 买房子的,都看看吧~
- Java代码编写的一般性指导
- ASP.NET 'Atlas' 概述
- jsp、servlet关于中文问题再谈
- 2006.4.13日,面包的blog终于开张了。Good Good Study,Day Day UP!
- 太阳能热水杯
- HTML---页面(PAGE)标记(TAGS)
- 发送WapPush(C#)