ASP.NET用DataTable导出到Excel

public static void IsExcel(DataTable dsBZDM)
        {
            //读取临时文件

            //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%'");
            //AlarmDataBLL bll = new AlarmDataBLL();
            //DataTable dsBZDM = bll.GetAlarmDataList("", "", "",
            //    "", "", "", "", "", "0");


            //同时将虚拟目录下的Data作为临时文件目录。

            string urlPath = HttpContext.Current.Request.ApplicationPath + "/DownLoad/";

            string physicPath = HttpContext.Current.Server.MapPath(urlPath);

            //string fileName = Guid.NewGuid() + ".Xls";

            string fileName = DateTime.Now.ToString("yyyyMMddHHmmss")+".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.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(physicPath + fileName);

            string httpHeader = "attachment;filename="+DateTime.Now.ToString("yyyyMMddHHmmss")+".Xls";

            response.AppendHeader("Content-Disposition", httpHeader);

            response.Flush();

            //输出完毕后清除临时文件
            string strSaveDir = "../DownLoad/";

            string strFile = HttpContext.Current.Server.MapPath(strSaveDir + fileName).ToString();

            //string sss = urlPath + fileName;

            System.IO.File.Delete(strFile);//删除临时文件

            response.End();
        }
View Code

 

转载于:https://www.cnblogs.com/wanglei6051519/archive/2013/03/07/2947433.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值