最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法

来源:动视网 责编:小采 时间:2020-11-27 22:37:55
文档

asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法

asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法:本文实例讲述了asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法。分享给大家供大家参考,具体如下: public DataSet GetDataSet(string filePath) { string Connstr = string.Format(Provider=Microso
推荐度:
导读asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法:本文实例讲述了asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法。分享给大家供大家参考,具体如下: public DataSet GetDataSet(string filePath) { string Connstr = string.Format(Provider=Microso


本文实例讲述了asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法。分享给大家供大家参考,具体如下:

public DataSet GetDataSet(string filePath)
{
 string Connstr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + filePath + "';Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'");
 OleDbConnection Conn = new OleDbConnection(Connstr);
 //创建ArrayList对象 存放所有sheetname 
 ArrayList sheetNamelist = new ArrayList();
 //获取配置Excel中sheet总数(这里是根据项目需求配置的) 如果需要导入Excel表格所有sheet数据则将此代码删除
 int sheetCount = Convert.ToInt32(ConfigurationManager.AppSettings["sheetCount"].ToString());
 DataSet dsExcel = new DataSet();
 try
 {
 if (Conn.State == ConnectionState.Closed)
 {
 Conn.Open();
 }
 DataTable dtExcelSchema = Conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
 string sheetName = string.Empty;
 if (dtExcelSchema.Rows.Count > sheetCount)
 {
 Page.RegisterStartupScript("", "<mce:script type="text/javascript"><!--
alert('很抱歉!你上传Excel文件sheet总数过多不能大于10个sheet..!! ')
// --></mce:script>");
 return;
 }
 else
 {
 for (int j = 0; j < dtExcelSchema.Rows.Count; j++)
 {
 sheetName = String.Format("Sheet{0}$", j + 1);
 sheetNamelist.Add(sheetName);
 }
 }
 }
 catch (Exception ex)
 {
 throw new Exception(ex.Message.ToString(), ex);
 }
 finally
 {
 Conn.Close();
 }
 try
 {
 string strSQL = string.Empty;
 for (int i = 0; i < sheetNamelist.Count; i++)
 {
 strSQL = "select * from [" + sheetNamelist[i].ToString() + "]";
 OleDbDataAdapter da = new OleDbDataAdapter(strSQL, Conn);
 DataTable dtExcel = new DataTable(sheetNamelist[i].ToString());
 da.Fill(dtExcel);
 dsExcel.Tables.Add(dtExcel);
 }
 return dsExcel;
 }
 catch (Exception ex)
 {
 throw new Exception(ex.Message.ToString(), ex);
 }
 }
 //从Excel 表中取出数据 将取出来的数据插入到数据库中
 public void InsertData(DataSet ds) {
 string strSQL=string.Empty;
 if (ds.Tables[0].Rows.Count > 0)
 {
 for (int j = 0; j < ds.Tables.Count; j++) 
 { 
 for(int i=0;i<ds.Tables[j].Rows.Count;i++)
 {
 DataRow dr=ds.Tables[j].Rows[i];
 //组名
 string groupname = dr["组名"].ToString().Trim();
 //联系人
 string contactName = dr["联系人"].ToString().Trim();
 //手机号码
 string mobile = dr["手机号码"].ToString().Trim();
 //公司名称
 string companyName = dr["公司名称"].ToString().Trim();
 //公办号码
 string officeNum = dr["办公号码"].ToString().Trim();
 //家庭号码
 string homeNum = dr["家庭号码"].ToString().Trim();
 //邮箱
 string Email = dr["邮 箱"].ToString().Trim();
 //联系地址
 string address = dr["联系地址"].ToString().Trim();
 //创建时间
 string createtime = dr["创建时间"].ToString().Trim();
 //性别
 string Sex = dr["性别"].ToString().Trim();
 //手机套餐类型
 string mobileType = dr["手机套餐类型"].ToString().Trim();
 //是否开通通信助理
 string isOpen = dr["是否开通通信助理"].ToString().Trim();
 //SQL 语句
 strSQL = "insert into msm_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
 {
 int n = SQLHelper.SqlDataExecute(strSQL);
 if (n > 0)
 {
 Page.RegisterStartupScript("", "<mce:script type="text/javascript"><!--
alert('数据插入成功!')
// --></mce:script>");
 Label1.Text = "一共成功插入" + ds.Tables[j].Rows.Count.ToString() + "条数据";
 }
 else
 {
 Page.RegisterStartupScript("", "<mce:script type="text/javascript"><!--
alert('服务器繁忙!请稍候再试..!')
// --></mce:script>");
 }
 }
 catch (Exception ex)
 {
 throw ex;
 }
 }
 } 
 }
 else {
 Page.RegisterStartupScript("", "<mce:script type="text/javascript"><!--
alert('此Excel文件中无数据!!!')
// --></mce:script>");
 }
 }
//调用
//获取上传文件名
 string fileName = FileUpload1.FileName;
 //判断是否存在上传文件
 if (FileUpload1.PostedFile.FileName.Length == 0) {
 Page.RegisterStartupScript("", "<mce:script type="text/javascript"><!--
alert('请选择你要上传的Excel文件!!')
// --></mce:script>");
 }
 //判断上传的文件类型是否正确
 else if (!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程序设计有所帮助。

文档

asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法

asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法:本文实例讲述了asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法。分享给大家供大家参考,具体如下: public DataSet GetDataSet(string filePath) { string Connstr = string.Format(Provider=Microso
推荐度:
标签: 方法 excel 导入
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top