asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法
本文实例讲述了asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法。分享给大家供大家参考,具体如下:
publicDataSetGetDataSet(stringfilePath) { stringConnstr=string.Format("Provider=Microsoft.Jet.OLEDB.4.0;DataSource='"+filePath+"';ExtendedProperties='Excel8.0;HDR=Yes;IMEX=1'"); OleDbConnectionConn=newOleDbConnection(Connstr); //创建ArrayList对象存放所有sheetname ArrayListsheetNamelist=newArrayList(); //获取配置Excel中sheet总数(这里是根据项目需求配置的)如果需要导入Excel表格所有sheet数据则将此代码删除 intsheetCount=Convert.ToInt32(ConfigurationManager.AppSettings["sheetCount"].ToString()); DataSetdsExcel=newDataSet(); try { if(Conn.State==ConnectionState.Closed) { Conn.Open(); } DataTabledtExcelSchema=Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,newobject[]{null,null,null,"Table"}); stringsheetName=string.Empty; if(dtExcelSchema.Rows.Count>sheetCount) { Page.RegisterStartupScript("","<mce:scripttype="text/javascript"><!-- alert('很抱歉!你上传Excel文件sheet总数过多不能大于10个sheet..!!') //--></mce:script>"); return; } else { for(intj=0;j<dtExcelSchema.Rows.Count;j++) { sheetName=String.Format("Sheet{0}$",j+1); sheetNamelist.Add(sheetName); } } } catch(Exceptionex) { thrownewException(ex.Message.ToString(),ex); } finally { Conn.Close(); } try { stringstrSQL=string.Empty; for(inti=0;i<sheetNamelist.Count;i++) { strSQL="select*from["+sheetNamelist[i].ToString()+"]"; OleDbDataAdapterda=newOleDbDataAdapter(strSQL,Conn); DataTabledtExcel=newDataTable(sheetNamelist[i].ToString()); da.Fill(dtExcel); dsExcel.Tables.Add(dtExcel); } returndsExcel; } catch(Exceptionex) { thrownewException(ex.Message.ToString(),ex); } } //从Excel表中取出数据将取出来的数据插入到数据库中 publicvoidInsertData(DataSetds){ stringstrSQL=string.Empty; if(ds.Tables[0].Rows.Count>0) { for(intj=0;j<ds.Tables.Count;j++) { for(inti=0;i<ds.Tables[j].Rows.Count;i++) { DataRowdr=ds.Tables[j].Rows[i]; //组名 stringgroupname=dr["组名"].ToString().Trim(); //联系人 stringcontactName=dr["联系人"].ToString().Trim(); //手机号码 stringmobile=dr["手机号码"].ToString().Trim(); //公司名称 stringcompanyName=dr["公司名称"].ToString().Trim(); //公办号码 stringofficeNum=dr["办公号码"].ToString().Trim(); //家庭号码 stringhomeNum=dr["家庭号码"].ToString().Trim(); //邮箱 stringEmail=dr["邮箱"].ToString().Trim(); //联系地址 stringaddress=dr["联系地址"].ToString().Trim(); //创建时间 stringcreatetime=dr["创建时间"].ToString().Trim(); //性别 stringSex=dr["性别"].ToString().Trim(); //手机套餐类型 stringmobileType=dr["手机套餐类型"].ToString().Trim(); //是否开通通信助理 stringisOpen=dr["是否开通通信助理"].ToString().Trim(); //SQL语句 strSQL="insertintomsm_Excel(groupName,Mobile,Name,companyName,officeNum,homeNum,Emial,address,Createtime,Sex,mobileType,isOpen)values('"+groupname+"','"+mobile+"','"+contactName+"','"+companyName+"','"+officeNum+"','"+homeNum+"','"+Email+"','"+address+"','"+createtime+"','"+Sex+"','"+mobileType+"','"+isOpen+"')"; try { intn=SQLHelper.SqlDataExecute(strSQL); if(n>0) { Page.RegisterStartupScript("","<mce:scripttype="text/javascript"><!-- alert('数据插入成功!') //--></mce:script>"); Label1.Text="一共成功插入"+ds.Tables[j].Rows.Count.ToString()+"条数据"; } else { Page.RegisterStartupScript("","<mce:scripttype="text/javascript"><!-- alert('服务器繁忙!请稍候再试..!') //--></mce:script>"); } } catch(Exceptionex) { throwex; } } } } else{ Page.RegisterStartupScript("","<mce:scripttype="text/javascript"><!-- alert('此Excel文件中无数据!!!') //--></mce:script>"); } } //调用 //获取上传文件名 stringfileName=FileUpload1.FileName; //判断是否存在上传文件 if(FileUpload1.PostedFile.FileName.Length==0){ Page.RegisterStartupScript("","<mce:scripttype="text/javascript"><!-- alert('请选择你要上传的Excel文件!!') //--></mce:script>"); } //判断上传的文件类型是否正确 elseif(!Path.GetExtension(FileUpload1.PostedFile.FileName).ToLower().Equals(".xls")&&!Path.GetExtension(FileUpload1.PostedFile.FileName).ToLower().Equals(".xlsx")) { Page.RegisterStartupScript("","<script>alert('很抱歉!你上传的文件类型不正确!只能上传Excel类型的文件!')</script."); } else { //获取上传的文件路径 filePath=Server.MapPath("TxtFiles//")+DateTime.Now.ToString("yyyyMMddhhmmss")+fileName; this.FileUpload1.PostedFile.SaveAs(filePath); ds=GetDataSet(filePath); InsertData(ds); }
希望本文所述对大家asp.net程序设计有所帮助。