您的位置:首页 > 数据库

关于.net程序中读取不规则的excle表格中的数据,并插入到数据库的方法

2016-09-13 14:34 681 查看
首页页面上要有一个提交按钮,当地及提交时,开始读取excle表格中的数据

protect void btnSubmit_Click(object sender,EventArgs e)

{

if(FileUploadMain.HasFile)//这一句是判断上传文件的控件里是否上传的有文件

{

bool fileOK=false;

string filepath = System.Web.HttpContext.Current.Request.MapPath("UploadFiles/")  + returnTime() + FileUploadMain.FileName;//设置上传文件的保存到服务器路径

                string fileExtension = System.IO.Path.GetExtension(FileUploadMain.PostedFile.FileName).ToLower();

                //限定只能上传jpg和gif图片

                string[] allowExtension = {".xlsx", ".xls" };

                //对上传的文件的类型进行一个个匹对

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

                {

                    if (fileExtension == allowExtension[i])

                    {

                        fileOk = true;

                        break;

                    }

                }

                if (fileOk.Equals(false))

                {

                    lblError.Text = "文件类型错误,请上传Excel文件";

                }

                else

                {

                    try

                    {

                        FileUploadMain.SaveAs(filepath);

                        ReadApplyExcel(filepath);

                    }

                    catch (Exception ex)

                    {

                        this.lblError.Text = "上传失败:" + ex.Message.ToString();

                    }

                }

            }

            else

            {

                this.lblError.Text = "请选择需要上传的申请单!";

            }

}

}

  private string returnTime()

        {

            string time = DateTime.Now.ToString();

            time = Convert.ToDateTime(time).ToString("yyyyMMddhhmmss");

            return time;

        }

 private void ReadApplyExcel(string path)

        {

            string connstring = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1';";

            using (OleDbConnection conn = new OleDbConnection(connstring))

            {

                conn.Open();

                DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });  //得到所有sheet的名字$

                string firstSheetName = sheetsName.Rows[0][2].ToString();//得到第一个sheet的名字

                string sql = string.Format("SELECT * FROM [{0}]", firstSheetName + "A:Z");  //查询字符串

                OleDbDataAdapter ada = new OleDbDataAdapter(sql, connstring);

                DataTable dt = new DataTable();

                ada.Fill(dt);//当把excle中的数据读入到dt中时,就把数据读入到了规则的区域,可以通过VS断点调试,查看dtl里的内容,就可以用dt.Rows[行][列]即dt.Rows[3]["f6"]来读取自己所需的数据

                path = path.Substring(path.LastIndexOf("UploadFiles"));

                path = path.Replace("\\", "/");

        

                #endregion

                conn.Close();

            }

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  .net 控件 对象