从Excel 电子表格中读取数据并插入到数据库的简单方式
阅读原文时间:2023年07月08日阅读:1
         using (FileStream fileStreamRead = new FileStream("new.xls" , FileMode.Open ))  
        {  
            //创建工作簿  
            IWorkbook wk = new HSSFWorkbook (fileStreamRead );  
            //获得工作表的个数  
            int sheetCount = wk.NumberOfSheets;  
            for (int i = 0; i < sheetCount; i++)  
            {  
                //获得当前工作表  
                ISheet sheet = wk.GetSheetAt (i);  
                string strSql =  
                    "insert into  T\_Customers(CC\_CustomerName, CC\_CellPhone, CC\_Landline,CC\_CarNum ,CC\_BracketNum,CC\_BuyDate) values(@CC\_CustomerName, @CC\_CellPhone, @CC\_Landline,@CC\_CarNum ,@CC\_BracketNum,@CC\_BuyDate)";  
                //获取当前工作表的总行数  
                int rowCount = sheet.LastRowNum ;  
                for (int j = 1; j <= rowCount; j++)  
                {  
                    SqlParameter\[\] parameters = new SqlParameter \[\]  
                                                  {  
                                                      new SqlParameter ("@CC\_CustomerName", SqlDbType .NVarChar,50),  
                                                      new SqlParameter ("@CC\_CellPhone",SqlDbType .VarChar,50),  
                                                      new SqlParameter ("@CC\_Landline",SqlDbType .VarChar,50),  
                                                       new SqlParameter ("@CC\_CarNum",SqlDbType .VarChar,50),  
                                                          new SqlParameter ("@CC\_BracketNum",SqlDbType .VarChar,50),  
                                                           new SqlParameter ("@CC\_BuyDate",SqlDbType .DateTime),  
                                                  };

                    //获得当前行  
                    IRow row = sheet.GetRow (j);  
                    //获得当前行的单元格数  
                    int cellCount = row.LastCellNum;  
                    for (int k = 0; k < cellCount; k++)  
                    {  
                        //获得当前单元格  
                        ICell cell = row.GetCell (k);

                        if (cell == null)  
                        {  
                            //当前单元格的数据为空 则给数据库传入空  
                            parameters\[ k\].Value = DBNull.Value;  
                        }  
                        else  
                        {  
                            //判断读到的数据类型  
                            switch (cell.CellType)  
                            {  
                                //数字类型  
                                case CellType .NUMERIC:  
                                    if (k == 5 )  
                                    {  
                                        parameters\[ k\].Value = cell.DateCellValue;  
                                    }  
                                    else  
                                    {  
                                        parameters\[ k\].Value = cell.NumericCellValue;  
                                    }

                                    break;  
                                   //空值  
                                case CellType .BLANK:  
                                    parameters\[ k\].Value = DBNull.Value;  
                                    break;  
                                default:  
                                    parameters\[ k\].Value = cell.ToString();  
                                    break;  
                            }  
                        }  
                    }  
                    int r = Alian\_SQL\_Helper.SQL\_Helper .ExecuteNonquery(strSql, CommandType .Text, parameters);  
                }  
            }  
        }

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章