C#导入Excel表数据

protected void btnImport_Click(object sender, EventArgs e)

  {

  int j = 1;

  DateTime str_date;

  DataSet ds;

  string IsXls = System.IO.Path.GetExtension(FileUpload.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名

  if (FileUpload.HasFile == false)//HasFile用来检查FileUpload是否有指定文件

  {

  uploadErrorTxt = "请您选择Excel文件!<br/>";

  }

  else if (IsXls != ".xls" && IsXls != ".xlsx")

  {

  uploadErrorTxt += "上传的文件必须为.xls后缀!<br/>";

  }

  else

  {

  string filename = DateTime.Now.ToString("yyyyMMddhhMMss") + FileUpload.FileName;

  string savePath = Server.MapPath(("~//upfiles//") + filename);

  FileUpload.SaveAs(savePath);

  try

  {

  ds = ExecleDs(savePath, filename);

  }

  catch

  {

  uploadErrorTxt = "导入失败,Excel工作表标签名错误,标签名必须是Sheet1,请查证后再导入!";

  gotoError();

  return;

  }

  DataRow[] dr = ds.Tables[0].Select();

  int rowsnum = ds.Tables[0].Rows.Count;

  if (rowsnum == 0)

  {

  uploadErrorTxt += "Excel表为空表,无数据!<br/>";

  }

  else

  {

  for (int i = 0; i < dr.Length; i++)

  {

  j = j + 1;

  string str_id = dr[i]["ID"].ToString();

  string str_name = dr[i]["名称"].ToString();

  try

  {

  str_date = DateTime.Parse(dr[i]["时间"].ToString());

  }

  catch

  {

  uploadErrorTxt = "第" + j + "行时间格式有误,停止导入!";

  gotoError();

  return;

  }

  bool b = bll.Exists(str_id); //id 不存在

  if (b == false)

  {

  try

  {

  model.id = int.Parse(str_id;);

  }

  catch

  {

  uploadErrorTxt = "第" + j + "行id格式错误,停止导入!";

  gotoError();

  return;

  }

  model.date = str_date;

  model.name=str_name;

  try

  {

  bll.Add(model);

  uploadSucceedTxt = "Excle表导入成功!";

  }

catch (MembershipCreateUserException ex)

  {

  uploadErrorTxt = "导入内容:" + ex.Message;

  }

  }

  else

  {

  uploadErrorTxt += "id:" + str_id + "id重复禁止导入!<br/>";

  }

  }

  }

  }

  if (uploadErrorTxt != "")

  {

  string txtPrint = "";

  txtPrint += "<table width='100%' border='0' align='center' cellpadding='0' cellspacing='1' bgcolor='#BBC7CE' class='tab01'>";

  txtPrint += "<tr>";

  txtPrint += "<td bgcolor='#ffffff'>";

  txtPrint += uploadErrorTxt;

  txtPrint += "</td>";

  txtPrint += "</tr>";

  txtPrint += "</table>";

  //输出错误提示

  this.labErrorTxt.Text = txtPrint;

  }

  else

  {

  string txtPrint = "";

  txtPrint += "<table width='100%' border='0' align='center' cellpadding='0' cellspacing='1' bgcolor='#BBC7CE' class='tab01'>";

  txtPrint += "<tr>";

  txtPrint += "<td bgcolor='#ffffff'>";

  txtPrint += uploadSucceedTxt;

  txtPrint += "</td>";

  txtPrint += "</tr>";

  txtPrint += "</table>";

  //输出成功提示

  this.labErrorTxt.Text = txtPrint;

  InitDateBind();

  }

  }

  void gotoError()

  {

  if (uploadErrorTxt != "")

  {

  string txtPrint = "";

  txtPrint += "<table width='100%' border='0' align='center' cellpadding='0' cellspacing='1' bgcolor='#BBC7CE' class='tab01'>";

  txtPrint += "<tr>";

  txtPrint += "<td bgcolor='#ffffff'>";

  txtPrint += uploadErrorTxt;

  txtPrint += "</td>";

  txtPrint += "</tr>";

  txtPrint += "</table>";

  //输出错误提示

  this.labErrorTxt.Text = txtPrint;

  InitDateBind();

  }

  }

  public DataSet ExecleDs(string filenameurl, string table)

  {

  DataSet ds = new DataSet();

  string strConn = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" + filenameurl + ";Extended Properties='Excel 12.0; HDR=YES; IMEX=1'";

  OleDbConnection conn = new OleDbConnection(strConn);

  conn.Open();

  OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);

  odda.Fill(ds, table);

  return ds;

  }

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值