Excel表导入数据库
Excel表数据导入到Sql数据库
代码如下:
string[] data = new string[3]; //定义一个数组用来用来存储 drd 中读取的数据 string filePathName = ""; //存储文件名 //定义一个打开文件对话框并设置相关属性 OpenFileDialog importFileDialog = new OpenFileDialog(); importFileDialog.AddExtension = true; importFileDialog.CheckFileExists = true; importFileDialog.CheckPathExists = true; importFileDialog.Filter = "Excel表格文件(97-2003)(*.xls)|*.xls|Excel表格文件|*.xlsx"; importFileDialog.InitialDirectory = "3"; importFileDialog.Title = "选择导入的终端信息文件"; importFileDialog.Multiselect = false; //判断用户是不是选择了“打开”操作 if (importFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { filePathName = importFileDialog.FileName; string strConn = ""; //判断文件扩展名是否是.xlsx if (filePathName.Substring(filePathName.Length - 5).ToLower() == ".xlsx") { strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + filePathName + "';Extended Properties='Excel 12.0;HDR=YES'"; } //判断文件扩展名是否是.xls else if (filePathName.Substring(filePathName.Length - 4).ToLower() == ".xls") { strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + filePathName + "';Extended Properties='Excel 8.0;HDR=YES;'"; } else { MessageBox.Show("选择的文件不合法!"); return; } OleDbConnection conn = new OleDbConnection(strConn); string strSqlConn = "Data Source=(local);Initial Catalog=IMPORT;Persist Security Info=False;User ID=sa; pwd = sa"; SqlConnection sqlConn = new SqlConnection(strSqlConn); sqlConn.Open(); if (conn.State.ToString() == "Closed") conn.Open(); // 读取文件语句 string strSql = "SELECT * FROM [sheet1$]"; OleDbCommand cmmd = new OleDbCommand(strSql, conn); OleDbDataReader drd = cmmd.ExecuteReader(); //开始读取 drd 中的数据,读取数据要确保Excel中每列的数据为对应该数据库表格中的数据 //有一点要注意,在读Excel时,是不读第一行数据的。 //(至于为什么我也不知道,我想可能是特意跳Excel的标题行吧) while (drd.Read()) { data[0] = drd[0].ToString(); data[1] = drd[1].ToString(); data[2] = drd[2].ToString(); //*********************这一块可以单独分离出来********* //定义插入Sql语句 //此处我的数据库表中的字段如下 //[ImportField1],[ImportField2],[ImportField3] StringBuilder sbSql = new StringBuilder(); sbSql.Append("INSERT INTO [tbImport]"); sbSql.Append(" ("); sbSql.Append(" [ImportField1]"); sbSql.Append(",[ImportField2]"); sbSql.Append(",[ImportField3]"); sbSql.Append(") VALUES ("); sbSql.Append(String.Format("'{0}',", data[0])); sbSql.Append(String.Format("'{0}',", data[1])); sbSql.Append(String.Format("'{0}',", data[2])); sbSql.Append(");"); SqlCommand sqlCmmd = new SqlCommand(sbSql.ToString(), sqlConn); //**************************************************** sqlCmmd.ExecuteNonQuery(); } conn.Close(); sqlConn.Close(); MessageBox.Show("数据导入成功。"); }
作者:Selway
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。