• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#将Excel表格中的数据导入SQL数据库

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
private static string _filePath=string.Empty ;
#region Excel导入SQL数据库
  /// <summary>
  /// 获取Excel数据表列表
  /// </summary>
  /// <returns></returns>
  public static ArrayList GetExcelTables()
  {
   //将Excel架构存入数据里
   System.Data.DataTable dt = new System.Data.DataTable();
   ArrayList TablesList=new ArrayList();
   if (File.Exists(FilePath))
   {
    using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet."+
         "OLEDB.4.0;Extended Properties=\"Excel 8.0\";Data Source=" + FilePath))
    {
     try
     {
      conn.Open();
      dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
     }
     catch (Exception exp)
     {
      Log.StrFileName ="查询Excel表单名";
      Log.StrDepartment ="Excel架构存入数据";
      Log.StrDescription =exp.ToString ();
      Log.WriteLog ();
     }
     //获取数据表个数
     int tablecount=dt.Rows.Count;
     for (int i=0;i<tablecount;i=i+2)
     {
      string tablename=dt.Rows[2].ToString().Trim().TrimEnd('$');
      if(TablesList.IndexOf(tablename)<0)
      {
       TablesList.Add(tablename);
      }
                        
     }
    }
   }
   return TablesList;
  }

  /// <summary>
  /// 导入Excel数据表至DataTable(第一行作为表头)
  /// </summary>
  /// <returns></returns>
  public static System.Data.DataSet FillDataSet()
  {
   if (!File.Exists(FilePath))
   {
    throw new Exception("Excel文件不存在!");
   }

   ArrayList TableList=new ArrayList();
   TableList = GetExcelTables();
   if(TableList.Count <=0)
   {
     return null;
   }


   System.Data.DataTable table ;
            System.Data .DataSet ds=new DataSet ();
   OleDbConnection dbcon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FilePath + ";Extended Properties=Excel 8.0");
   try
   {
    if (dbcon.State == ConnectionState.Closed)
    {
     dbcon.Open();
    }
    for(int i=0;i<TableList.Count ;i++)
    {
     string dtname=TableList.ToString ();
     try
     {
      OleDbCommand cmd = new OleDbCommand("select * from [" + dtname + "$]", dbcon);
      OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
      table=new DataTable (dtname);
      adapter.Fill(table);
      ds.Tables .Add (table);
     }
     catch (Exception exp)
     {
      Log.StrFileName =dtname;
      Log.StrDepartment ="将Excel表格导入DataSet";
      Log.StrDescription =exp.ToString ();
      Log.WriteLog ();
     }
    }
   }
   finally
   {
    if (dbcon.State == ConnectionState.Open)
    {
     dbcon.Close();
    }
   }
   return ds;
  }
  
  /// <summary>
  /// Excel导入数据库
  /// </summary>
  /// <returns></returns>
  public static DataSet ImportFromExcel()
  {
   return FillDataSet();
  }

#endregion

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#listbox的上下移动,拖动排序,两个listbox相互拖动发布时间:2022-07-13
下一篇:
C#Subject观察者模式发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap