代码改变世界

向数据库中导入Excel的简单实现

2013-05-16 13:07  ttym88m  阅读(118)  评论(0编辑  收藏  举报

注明:本内容部分内容来自网络。根据自己的实例写的东西,放在网上,以便以后自己调用!

try
            {
                //OpenFileDialog ofd = new OpenFileDialog();
                //{
                //    ofd.Filter = "Excel files (*.xls)|*.xls";
                //}


                var ofds = new OpenFileDialog()
                {
                    Filter = "Microsoft Office Excel 工作薄(*.xls)|*.xls|(*.xlsx)|*.xlsx",
                    Multiselect = false
                };

                if (ofds.ShowDialog() == DialogResult.Cancel)
                {
                    return;
                }

                var ds = new DataSet("msgIds");
                var strCon = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0 ",ofds.FileName);
                using(var oledbConn = new OleDbConnection(strCon) )
                {
                    oledbConn.Open();
                    var sheetName = oledbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new []{ null,null,null,"Table" });
                    var sheet = new string[sheetName.Rows.Count];

                    for (int i = 0, j = sheetName.Rows.Count; i < j; i++)
                    {
                        sheet[i] = sheetName.Rows[i]["TABLE_NAME"].ToString();
                    }
                    var adpater = new OleDbDataAdapter(string.Format("select * from [{0}]",sheet[0]),oledbConn);

                    adpater.Fill(ds);
                }

                int success = 0;
                int lose = 0;
                MODEL.ModelCity model = new MODEL.ModelCity();
                BLL.BLLCity bll = new BLL.BLLCity();
                progressBar1.Maximum = ds.Tables[0].Rows.Count;
                foreach (DataTable dt in ds.Tables)
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        model.CityID = Convert.ToInt32(dr[0].ToString());
                        model.CityName = dr[1].ToString();
                        model.RootID = Convert.ToInt32(dr[2].ToString());
                        model.Child = Convert.ToInt32(dr[3].ToString());
                        model.Layer = Convert.ToInt32(dr[4].ToString());
                        model.Sort = Convert.ToInt32(dr[5].ToString());
                        model.Isopen = Convert.ToInt32(dr[6].ToString());

                        int Isinsert=  bll.InsertToCity(model);
                        if (Isinsert == 1)
                        {
                            success++;
                            progressBar1.Value = success;
                        }
                        else
                        {
                            lose++;
                        }

                    }
                }

                MessageBox.Show(success.ToString() +"条成功数据");

              

 

 

            }
            catch (Exception ex)
            {
                MessageBox.Show(""+ex.ToString());
            }