MVC3学习:将excel文件导入到sql server数据库

来源:互联网 发布:ps美工招聘兼职 编辑:程序博客网 时间:2024/06/05 05:36

思路:

1、将excel文件导入到服务器中。

2、读取excel文件,转换成dataset.

3、循环将dataset数据插入到数据库中。

本例子使用的表格为一个友情链接表F_Link(LinkId,LinkName,LinkUrl)

使用的excel文件:

准备工作做好后,就直接进入主题:

一、view视图(视图名称为UploadFile,控制器为home)

复制代码
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script><script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>@using (Html.BeginForm("UploadFile", "home", FormMethod.Post, new { enctype = "multipart/form-data" })){    @Html.ValidationSummary(true)     <input type="file" name="file" value="选择文件" />     <input type="submit" id="submit" value="导入" />}
复制代码

二、控制器

复制代码
public ActionResult UploadFile()        {            //设置上传目录            string path = Server.MapPath("~/Content/upload/");            if (!Directory.Exists(path))                Directory.CreateDirectory(path);            //判断是否已经选择上传文件            HttpPostedFileBase file = Request.Files["file"];            if (file != null && file.ContentLength > 0)            {                string filenName = file.FileName;                string fileExt = Path.GetExtension(filenName).ToLower().Substring(1);                if (fileExt != "xls" && fileExt != "xlsx")                {                    ModelState.AddModelError("", "您选择的不是Excel文件");                    return View();                }                else                {                    //上传文件                    string filepath = path + filenName;                    file.SaveAs(filepath);                    //读取excel文件,转换成dataset                    string strConn;                    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=Excel 8.0;";                    OleDbConnection conn = new OleDbConnection(strConn);                    OleDbDataAdapter oada = new OleDbDataAdapter("select * from [Sheet1$]", strConn);                    DataSet ds = new DataSet();                    oada.Fill(ds);                    //循环读取每一行,将数据插入到sql server数据库                    foreach(DataRow row in ds.Tables[0].Rows)                    {                        F_link fl=new F_link();                        fl.LinkName=row[0].ToString();                        fl.LinkUrl=row[1].ToString();                        db.F_link.AddObject(fl);                        db.SaveChanges();                    }                    return RedirectToAction("index");                }            }            else            {                ModelState.AddModelError("", "请选择文件");                return View();            }        }
复制代码

三、结果

0 0
原创粉丝点击