Excel to DataBase Excel数据导入到数据库

来源:互联网 发布:万方数据库怎么查论文 编辑:程序博客网 时间:2024/06/07 07:22
欢迎各位下载我写的一个Excel与数据库互导数据的小程序   http://download.csdn.net/detail/lxp520llq/4507689
class ExceltoDatabase    {        public static string FillData(string openFilePath, string ID, string pwd, string dataBase, string tableName, string dataBaseType)        {            DataTable dt = ExcelToDt(openFilePath);            if (dataBaseType=="Oracle")            {                using (OracleConnection conn = new OracleConnection("Data Source=" + dataBase + ";uid=" + ID + ";pwd=" + pwd + ";"))                {                    conn.Open();                    for (int i = 1; i < dt.Columns.Count; i++)        {                        for (int j = 0; j < dt.Rows.Count; j++)                        {                            string cmd = "insert into " + tableName + " (" + dt.Columns[i].ColumnName.ToString() + ") values (" + dt.Rows[j][dt.Columns[i].ColumnName.ToString()].ToString() + ")";                            OracleCommand cmdStr = new OracleCommand(cmd, conn);                            cmdStr.ExecuteNonQuery();                        }        }                }            }            if (dataBaseType == "SQL Server")            {                using (SqlConnection conn = new SqlConnection("DataBase=" + dataBase + ";uid=" + ID + ";pwd=" + pwd + ";"))                {                    conn.Open();                    for (int i = 1; i < dt.Columns.Count; i++)                    {                        for (int j = 0; j < dt.Rows.Count; j++)                        {                            string cmd = "insert ino " + tableName + " (" + dt.Columns[i].ColumnName.ToString() + ") values (" + dt.Rows[j][dt.Columns[i].ColumnName.ToString()].ToString() + ")";                            SqlCommand cmdStr = new SqlCommand(cmd, conn);                            cmdStr.ExecuteNonQuery();                        }                    }                }            }            return "导入成功";        }        public static DataTable ExcelToDt(string Path)        {            //2007或者2010版本的Office            //string conn_str = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path + "; Extended Properties=Excel 12.0;";            //2003的Office            string conn_str = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";            object missing = Missing.Value;//在COM调用时进行占位用的,如果某个参数不会被使用,则使用这个进行占位            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();            excelApp.Visible = false;            try            {                excelApp.Workbooks.Open(Path, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);                Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)excelApp.Workbooks[1].Worksheets[1];//打开第一个工作薄中的第一张表                string sheetName = ws.Name;//获取工作表的Name                DataTable dt = new DataTable();                using (OleDbConnection conn = new OleDbConnection(conn_str))                {                    conn.Open();                    OleDbDataAdapter adp = new OleDbDataAdapter("select * from [" + sheetName + "$]", conn);                    adp.Fill(dt);                }                excelApp.Workbooks.Close();                excelApp.Quit();                releaseObject(ws);                excelApp = null;                return dt;            }            catch (Exception)            {                throw;            }        }        #region 释放内存资源        private static void releaseObject(object obj)        {            try            {                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);//释放Com对象                obj = null;            }            catch (Exception)            {                obj = null;            }            finally            {                GC.Collect();            }        }        #endregion    }