C#把excel导入SQL代码
其中有两种实在摸不着头脑。。。
1.通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL Server。
大神能不能帮忙解释一下。。。Jet,OleDB,DAO,ADO,还有ODBC之间有什么关系啊。。。我实在昏得不行了。。。TAT。。。
2.通过到入Excel的VBA dll,通过VBA接口获取Excel数据到DataSet。
学长给的代码我贴在这儿
C# code?private void teacherImport01(object sender, EventArgs e) { object missing = System.Reflection.Missing.Value; Application excel = new Application();//lauch excel application if (excel == null) { Response.Write("<script>alert('Can't access excel')</script>"); } else { excel.Visible = false; excel.UserControl = true; // 以只读的形式打开EXCEL文件 Workbook wb = excel.Application.Workbooks.Open(teacherFilePath, missing, true, missing, missing, missing,missing, missing, missing, true, missing, missing, missing, missing, missing); //取得第一个工作薄 Worksheet ws = (Worksheet)wb.Worksheets.get_Item(1); //取得总记录行数 (包括标题列) int rowsint = ws.UsedRange.Cells.Rows.Count; //得到行数 //int columnsint = mySheet.UsedRange.Cells.Columns.Count;//得到列数 //取得数据范围区域 (不包括标题列) Range rng1 = ws.Cells.get_Range("B2", "B" + rowsint); //item Range rng2 = ws.Cells.get_Range("M2", "M" + rowsint); //Customer Range rng3 = ws.Cells.get_Range("B2", "M" + rowsint); object[,] arryItem= (object[,])rng1.Value2; //get range's value object[,] arryCus = (object[,])rng2.Value2; //将新值赋给一个数组 object[,] objs = (object[,])rng3.Value2; string sqlString = ""; for (int i = 1; i < rowsint; i++) { sqlString = "insert into teacher values('" + objs[i, 1] + "','" + objs[i, 2] + "','" + objs[i, 3] + "','" + objs[i, 4] + "','" + objs[i, 5] + "','" + objs[i, 6] + "','" + objs[i, 7] + "','" + objs[i, 8] + "','" + objs[i, 9] + "','" + objs[i, 10] + "','" + objs[i, 11] + "','" + objs[i, 12] + "')"; using (SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString.Trim())) { sqlconn.Open(); SqlCommand sqlcommand = new SqlCommand(sqlString, sqlconn); sqlcommand.ExecuteNonQuery(); sqlconn.Close(); }
我知道学长也给出了注释。。可是我就是屁嘛也不懂啊!!!!TAT。。。太想哭!!!!
关于这个我想问啥我也不知道。。。。总之就是一个屁嘛也不懂的菜鸟妹子想把这段代码搞懂并能写出2000字论文。。。。哎。。。。求大神相助。。。。
你如果只是要实现功能的话 你可以看看NPOI
这个用起来简单又方便 倒EXcel灰常方便
1\NOPI直接转DataTable,然后导入数据库
2\直接用SQL命令导入数据库
INSERT INTO tb1([字段1],[字段2]...)
SELECT [字段1],[字段2]...
FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;IMEX=2;DATABASE=D:\abc.xls',[Sheet1$])