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

思路:

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

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

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

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

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

使用的excel文件:

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

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

一、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();

            }

        }

三、结果

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

你可能感兴趣的:(SQL Server)