zoukankan      html  css  js  c++  java
  • C#项目中excel的数据导入功能

    C#项目中excel的数据导入功能

    实现思路

    1.点击按钮的时候,将文件上传并指定上传路劲

    2.文件上传成功后,这个文件就在服务器中的一个文件里面

    3.将上传的文件当成一个“移动的数据库”,利用NPOI获取excel表中的数据

    4.通过for循环遍历表中 每一行的的值 再调用添加的接口将数据添加到数据库中去

    注意:下面的代码我只展示控制器里的代码 其他层的代码就不展示了 

    [HttpPost]
           public ActionResult Upload()
           {
               var file = Request.Files[0]; //拿到前端上传的文件
               var Isxls = Path.GetExtension(file.FileName).ToString().ToLower();
               if (Isxls != ".xls" && Isxls != ".xlsx")  //判断文件格式
               {
                  return Error();
               }
               if (file == null) { return Error("文件无内容,请检查后重新上传~"); }
               string userId = OperatorProvider.Instance.Current.UserId; //这里是获取当前登录用户的ID 可以不要 我是用来拼接上传后文件的名称
               string virtualPath = Path.Combine("/Content/Uploads/Files", userId + Path.GetExtension(file.FileName));
               string filePath = Request.MapPath(virtualPath);
               if (FileUtil.Exists(filePath))//判断文件是否存在
               {
                   FileUtil.Delete(filePath);
               }
               file.SaveAs(filePath);//这里是拿到上传后的文件
               NPOI.XSSF.UserModel.XSSFWorkbook workBook = new NPOI.XSSF.UserModel.XSSFWorkbook(new FileStream(Path.GetFullPath(filePath), FileMode.Open));
               NPOI.XSSF.UserModel.XSSFSheet sheet = (NPOI.XSSF.UserModel.XSSFSheet)workBook.GetSheetAt(0);
               int rowCount = sheet.LastRowNum;
               //开始添加
               for (int j = 0; j < rowCount; j++)
               {
                   //获取excel每一行的值
                   string Id = Guid.NewGuid().ToString();
                   string CreateTime = sheet.GetRow(j + 1).GetCell(0).ToString().Trim().Replace("
    ", "");
                   string ClientName = sheet.GetRow(j + 1).GetCell(1).ToString().Trim().Replace("
    ", "");
                   //创建需要导入数据的实体类对象
                   SysClient model = new SysClient();
                   model.Id = Id;
                   model.CreateTime = CreateTime ;
                   model.ClientName = ClientName;
                   clientLogic.Inserts(model);//调用写好的添加接口
               }
               return Success("导入成功!");
           }
          
       }

    关于导入的功能我这里写的简单了些  当然你也可以根据自己的想法去写 这里我只提供一个思路。

  • 相关阅读:
    禁止后台运行
    图标的圆角和光晕效果和启动画面
    IOS 开发 有关iPhone程序的安装目录UUID 唯一标识
    NSOperation与performSelectorOnMainThread
    Java web开发学习规划
    JAVA类集
    java 四种xml操作方式的基本使用方法
    用JDOM操作XML文件
    java web 学习
    过去的,将来的
  • 原文地址:https://www.cnblogs.com/yztdd99/p/13344040.html
Copyright © 2011-2022 走看看