视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001 知道1 知道21 知道41 知道61 知道81 知道101 知道121 知道141 知道161 知道181 知道201 知道221 知道241 知道261 知道281
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法
2020-11-27 22:37:55 责编:小采
文档

本文实例讲述了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程序设计有所帮助。

下载本文
显示全文
专题