欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

asp.net導(dǎo)出數(shù)據(jù)到Excel的方法(完全無組件,不用調(diào)用Excel.exe) - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 技術(shù)分享 >

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

發(fā)表時間:2020-10-18

發(fā)布人:葵宇科技

瀏覽次數(shù):58

 今天把大家最常用的功能 asp.net導(dǎo)出數(shù)據(jù)到Excel, 通常的方法 是組件形式的,但是ASP.NET 對殺死Excel.exe支持不夠好,特別還需要設(shè)置dcom太麻煩了.現(xiàn)在我給大家的是我做 開發(fā),已經(jīng)應(yīng)用到實際項目的方法,該方法不用調(diào)用Excel.exe進程.有不明白的,可以在下面留言,我會做解答的. 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)建表失敗,錯誤信息:" + 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
  }
 
昆明軟件開發(fā)公司中的佼佼者,致力定制軟件開發(fā),昆明軟件開發(fā)請聯(lián)系昆明葵宇科技有限公司,電話:15987118523。

相關(guān)案例查看更多