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

思路:

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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值