zoukankan      html  css  js  c++  java
  • DataSet导出到EXCEL

    string physicPath = HttpContext.Current.Server.MapPath(this.Context.Request.Path);//獲取路徑
            string fileName = Guid.NewGuid() + ".Xls";
            string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + physicPath + fileName + ";Extended Properties=Excel 8.0;";
            ToExcel(ds.Tables[0], connString);
            Response.Clear();
            Response.WriteFile(physicPath + fileName);
            string httpHeader = "attachment;filename=" + "iniu因你服饰" + "_" + string.Format("{0:yyyyMMdd}", DateTime.Today) +

    string.Format("{0:00}", DateTime.Now.Hour) + string.Format("{0:00}", DateTime.Now.Minute) + ".xls";
            Response.ContentType = "application/vnd.ms-excel";
            Response.AppendHeader("Content-Disposition", httpHeader);
            Response.Flush();
            System.IO.File.Delete(physicPath + fileName);//下載后刪除創建的EXCEL
            Response.End();

    public void ToExcel(DataTable dt, string connString)
        {
            int rows = dt.Rows.Count;
            int cols = dt.Columns.Count;
            StringBuilder sb = new StringBuilder();
            sb.Append("CREATE TABLE ");
            sb.Append(dt.TableName + " ( ");
            for (int i = 0; i < cols; i++)
            {           
                if (i < cols - 1)
                   
                    sb.Append(string.Format("{0} varchar,", dt.Columns[i].ColumnName));
                else
                    sb.Append(string.Format("{0} varchar)", dt.Columns[i].ColumnName));
            }
            using (OleDbConnection objConn = new OleDbConnection(connString))
            {
                OleDbCommand objCmd = new OleDbCommand();
                objCmd.Connection = objConn;
                objCmd.CommandText = sb.ToString();
                objConn.Open();
                objCmd.ExecuteNonQuery();

                #region 開始處理資料內容的新增
                sb.Remove(0, sb.Length);
                sb.Append("INSERT INTO ");
                sb.Append(dt.TableName + " ( ");
                for (int i = 0; i < cols; i++)
                {
                    if (i < cols - 1)
                        sb.Append(dt.Columns[i].ColumnName + ",");
                    else
                        sb.Append(dt.Columns[i].ColumnName + ") values (");
                }
                for (int i = 0; i < cols; i++)
                {
                    if (i < cols - 1)
                        sb.Append("@" + dt.Columns[i].ColumnName + ",");
                    else
                        sb.Append("@" + dt.Columns[i].ColumnName + ")");
                }
                #endregion
                objCmd.CommandText = sb.ToString();
                OleDbParameterCollection param = objCmd.Parameters;
                for (int i = 0; i < cols; i++)
                {
                    param.Add(new OleDbParameter("@" + dt.Columns[i].ColumnName, OleDbType.VarChar));
                }
                foreach (DataRow row in dt.Rows)
                {
                    for (int i = 0; i < param.Count; i++)
                    {
                        param[i].Value = row[i];
                    }
                    objCmd.ExecuteNonQuery();
                }
            }
        }

  • 相关阅读:
    如何让DataGridView根据数据“0”或“1”等值显示为“是”或“否”
    GridView控件RowDataBound事件中获取列字段的几种方法
    DataGridView 显示和隐藏DataGridViewButtonCell按钮的办法
    ASP.NET会话(Session)保存模式
    Update 两个表之间数据更新
    两表相连去除重复数据
    BS网站与Winform窗体的数据交互(WebService实现)
    winform 下实现消息传递机制
    SQL常用字符串函数
    HDU 威威猫系列故事——篮球梦
  • 原文地址:https://www.cnblogs.com/gerryge/p/2105221.html
Copyright © 2011-2022 走看看