日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

asp.net導(dǎo)出數(shù)據(jù)到Excel的方法(完全無組件,不用調(diào)用Excel.exe)

 悟靜 2012-01-30
  • using System;
     
  • using System.Text;
     
  • using System.Data;
     
  • using System.Data.OleDb;
     

  •  
  • namespace PowerAgent.DBUtility
     
  • {
     
  •     /**//// <summary>
     
  •     /// DataToExcel 的摘要說明。
     

  •  
  •     /// DataToExcel 的摘要說明。
     
  •     /// </summary>
     
  •     public class DataToExcel
     
  •     {
     
  •         const string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0;";
     

  •  
  •         public DataToExcel()
     
  •         {
     
  •         }
     

  •  
  •         public string DataTableToExcel(DataTable dt, string excelPath)
     
  •         {
     
  •             if (dt == null)
     
  •             {
     
  •                 return "DataTable不能為空";
     
  •             }
     

  •  
  •             int rows = dt.Rows.Count;
     
  •             int cols = dt.Columns.Count;
     
  •             StringBuilder sb;
     
  •             string connString;
     

  •  
  •             if (rows == 0)
     
  •             {
     
  •                 return "沒有數(shù)據(jù)";
     
  •             }
     

  •  
  •             sb = new StringBuilder();
     
  •             connString = string.Format(ConnectionString, excelPath);
     

  •  
  •             //生成創(chuàng)建表的腳本
     
  •             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.ColumnName));
     
  •                 else
     
  •                     sb.Append(string.Format("{0} varchar)", dt.Columns.ColumnName));
     
  •             }
     

  •  
  •             using (OleDbConnection objConn = new OleDbConnection(connString))
     
  •             {
     
  •                 OleDbCommand objCmd = new OleDbCommand();
     
  •                 objCmd.Connection = objConn;
     

  •  
  •                 objCmd.CommandText = sb.ToString();
     

  •  
  •                 try
     
  •                 {
     
  •                     objConn.Open();
     
  •                     objCmd.ExecuteNonQuery();
     
  •                 }
     
  •                 catch (Exception e)
     
  •                 {
     
  •                     return "在Excel中創(chuàng)建表失敗,錯(cuò)誤信息:" + e.Message;
     
  •                 }
     

  •  
  •                 生成插入數(shù)據(jù)腳本#region 生成插入數(shù)據(jù)腳本
     
  •                 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.ColumnName + ",");
     
  •                     else
     
  •                         sb.Append(dt.Columns.ColumnName + ") values (");
     
  •                 }
     

  •  
  •                 for (int i = 0; i < cols; i++)
     
  •                 {
     
  •                     if (i < cols - 1)
     
  •                         sb.Append("@" + dt.Columns.ColumnName + ",");
     
  •                     else
     
  •                         sb.Append("@" + dt.Columns.ColumnName + ")");
     
  •                 }
     
  •                 #endregion
     

  •  

  •  
  •                 //建立插入動作的Command
     
  •                 objCmd.CommandText = sb.ToString();
     
  •                 OleDbParameterCollection param = objCmd.Parameters;
     

  •  
  •                 for (int i = 0; i < cols; i++)
     
  •                 {
     
  •                     param.Add(new OleDbParameter("@" + dt.Columns.ColumnName, OleDbType.VarChar));
     
  •                 }
     

  •  
  •                 //遍歷DataTable將數(shù)據(jù)插入新建的Excel文件中
     
  •                 foreach (DataRow row in dt.Rows)
     
  •                 {
     
  •                     for (int i = 0; i < param.Count; i++)
     
  •                     {
     
  •                         param.Value = row;
     
  •                     }
     

  •  
  •                     objCmd.ExecuteNonQuery();
     
  •                 }
     

  •  
  •                 return "數(shù)據(jù)已成功導(dǎo)入Excel";
     
  •             }//end using
     
  •         }
     
  •     }//end class
     
    • 本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多