关于导出excel 之前找了很多这样的问题,要么是使用COM组件,要么就是导出的格式还有编码不对,要么是没法导,要么是只能到处本页流或者GRIDVIEW之类的控件,没有通用一点的方法吗?比如导出DataSet到Excel? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还是用DataSet到Excel吧.http://www.cnblogs.com/asdcer/archive/2006/07/20/455365.aspx//读取临时文件 GYYW.DA.Common.Base_SqlDataBase daBZDM = new GYYW.DA.Common.Base_SqlDataBase(); DataSet dsBZDM = daBZDM.GetDataSetBySql("select QCDM,MC,GG from WG_BZDM where QCDM like '02%'"); //同时将虚拟目录下的Data作为临时文件目录。 string urlPath = HttpContext.Current.Request.ApplicationPath + "/Data/"; string physicPath = HttpContext.Current.Server.MapPath(urlPath); //string fileName = Guid.NewGuid() + ".Xls"; string fileName ="DownLoad.Xls"; string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + physicPath + fileName +";Extended Properties=Excel 8.0;"; OleDbConnection objConn = new OleDbConnection(connString); OleDbCommand objCmd = new OleDbCommand(); objCmd.Connection = objConn; objCmd.Connection.Open(); //建立表结构 objCmd.CommandText = @"CREATE TABLE Sheet1(器材代码 varchar,名称 varchar, 规格 varchar)"; objCmd.ExecuteNonQuery(); //建立插入动作的Command objCmd.CommandText = "INSERT INTO Sheet1(器材代码, 名称,规格) VALUES (@QCDM, @MC, @GG)"; objCmd.Parameters.Clear(); objCmd.Parameters.Add(new OleDbParameter("@QCDM", OleDbType.VarChar)); objCmd.Parameters.Add(new OleDbParameter("@MC", OleDbType.VarChar)); objCmd.Parameters.Add(new OleDbParameter("@GG",OleDbType.VarChar)); //遍历DataSet将数据插入新建的Excel文件中 foreach (DataRow row in dsBZDM.Tables[0].Rows) { for (int i=0; i<objCmd.Parameters.Count; i++) { objCmd.Parameters[i].Value = row[i]; } objCmd.ExecuteNonQuery(); } objCmd.Connection.Close(); //提供下载 //清除临时文件 HttpResponse response = HttpContext.Current.Response; response.Clear(); //为输出作准备 response.WriteFile(urlPath + fileName); string httpHeader="attachment;filename=KCMX.Xls"; response.AppendHeader("Content-Disposition", httpHeader); response.Flush(); //输出完毕后清除临时文件 string strSaveDir = "../Data/"; string strFile = Server.MapPath(strSaveDir + fileName).ToString(); //string sss = urlPath + fileName; System.IO.File.Delete(strFile);//删除临时文件 response.End(); LS的是一种方法,还有一种简单的方法,被称为终极解决方案2005可以建立一个临时的GridView或者DataGrid,2003建立一个DataGrid//dtData是要导出为Excel的DataTable,FileName是要导出的Excel文件名(不加.xls) public static void DataTable2Excel(System.Data.DataTable dtData, String FileName) { System.Web.UI.WebControls.GridView dgExport = null; //当前对话 System.Web.HttpContext curContext = System.Web.HttpContext.Current; //IO用于导出并返回excel文件 System.IO.StringWriter strWriter = null; System.Web.UI.HtmlTextWriter htmlWriter = null; if (dtData != null) { //设置编码和附件格式 //System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8)作用是方式中文文件名乱码 curContext.Response.AddHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls"); curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Response.ContentEncoding = System.Text.Encoding.UTF8; curContext.Response.Charset = "GB2312"; //导出Excel文件 strWriter = new System.IO.StringWriter(); htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter); //为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的GridView dgExport = new System.Web.UI.WebControls.GridView(); dgExport.DataSource = dtData.DefaultView; dgExport.AllowPaging = false; dgExport.DataBind(); //下载到客户端 dgExport.RenderControl(htmlWriter); curContext.Response.Write(strWriter.ToString()); curContext.Response.End(); } }你要导出DataSet简称DS,导出的文件名为,“文件”,那么这么调用DataTable2Excel(DS.Tables[0], "文件") 太感谢了,那个终极的可以哦,而且感觉比较方便,当然也谢谢liq330(泉水叮咚) 希望你们以后还能多帮助我 jquery post 无刷新连级下拉框问题 想搞个单位的业务管理系统 问2个100问题 各100分 谁给提供点iis总停止服务方面的解决办法或者资料? VS03下开发的程序,转换到VS05,提示如下错误,请问如何解决 水晶报表打印大数据量的问题 ASP.NET中TOList转成JSON格式 讨论下web高效开发web编辑和列表页的想法 初学者,以下两个页面用asp.net怎么写???求帮忙!!! VS.NET+SQL2000+WINDOWS2003 对于.NET,我很迷茫,高手来帮帮忙啊 为什么文件夹里的网页访问不到资源文件?
http://www.cnblogs.com/asdcer/archive/2006/07/20/455365.aspx//读取临时文件
GYYW.DA.Common.Base_SqlDataBase daBZDM = new GYYW.DA.Common.Base_SqlDataBase();
DataSet dsBZDM = daBZDM.GetDataSetBySql("select QCDM,MC,GG from WG_BZDM where QCDM like '02%'");
//同时将虚拟目录下的Data作为临时文件目录。
string urlPath = HttpContext.Current.Request.ApplicationPath + "/Data/";
string physicPath = HttpContext.Current.Server.MapPath(urlPath);
//string fileName = Guid.NewGuid() + ".Xls";
string fileName ="DownLoad.Xls";
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + physicPath + fileName +";Extended Properties=Excel 8.0;"; OleDbConnection objConn = new OleDbConnection(connString);
OleDbCommand objCmd = new OleDbCommand();
objCmd.Connection = objConn;
objCmd.Connection.Open();
//建立表结构
objCmd.CommandText = @"CREATE TABLE Sheet1(器材代码 varchar,名称 varchar, 规格 varchar)";
objCmd.ExecuteNonQuery(); //建立插入动作的Command objCmd.CommandText = "INSERT INTO Sheet1(器材代码, 名称,规格) VALUES (@QCDM, @MC, @GG)"; objCmd.Parameters.Clear(); objCmd.Parameters.Add(new OleDbParameter("@QCDM", OleDbType.VarChar));
objCmd.Parameters.Add(new OleDbParameter("@MC", OleDbType.VarChar));
objCmd.Parameters.Add(new OleDbParameter("@GG",OleDbType.VarChar));
//遍历DataSet将数据插入新建的Excel文件中
foreach (DataRow row in dsBZDM.Tables[0].Rows)
{
for (int i=0; i<objCmd.Parameters.Count; i++)
{
objCmd.Parameters[i].Value = row[i];
}
objCmd.ExecuteNonQuery();
}
objCmd.Connection.Close(); //提供下载
//清除临时文件
HttpResponse response = HttpContext.Current.Response;
response.Clear();
//为输出作准备
response.WriteFile(urlPath + fileName);
string httpHeader="attachment;filename=KCMX.Xls";
response.AppendHeader("Content-Disposition", httpHeader);
response.Flush();
//输出完毕后清除临时文件
string strSaveDir = "../Data/";
string strFile = Server.MapPath(strSaveDir + fileName).ToString();
//string sss = urlPath + fileName;
System.IO.File.Delete(strFile);//删除临时文件
response.End();
public static void DataTable2Excel(System.Data.DataTable dtData, String FileName)
{
System.Web.UI.WebControls.GridView dgExport = null;
//当前对话
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
//IO用于导出并返回excel文件
System.IO.StringWriter strWriter = null;
System.Web.UI.HtmlTextWriter htmlWriter = null; if (dtData != null)
{
//设置编码和附件格式
//System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8)作用是方式中文文件名乱码
curContext.Response.AddHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls");
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
curContext.Response.Charset = "GB2312"; //导出Excel文件
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter); //为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的GridView
dgExport = new System.Web.UI.WebControls.GridView();
dgExport.DataSource = dtData.DefaultView;
dgExport.AllowPaging = false;
dgExport.DataBind(); //下载到客户端
dgExport.RenderControl(htmlWriter);
curContext.Response.Write(strWriter.ToString());
curContext.Response.End();
}
}你要导出DataSet简称DS,导出的文件名为,“文件”,那么这么调用DataTable2Excel(DS.Tables[0], "文件")