将Excel导入置数据库中;

首先要准备一个Excel模板.Excel第一行的字段要与数据库字段相对应;

这是我的页面

 

后台代码:

下载Excel模板

 public ActionResult downloadTenplate()
        {
            string templatePath = Server.MapPath("~/Document/Temp/商品信息导入模板.xls");
            if (System.IO.File.Exists(templatePath))
            {
                //返回指定路径文件
                return File(templatePath, "application/vnd.ms-excel", "商品信息导入模板.xls");
            }
            else
            {
                return Content("模板文件不存在!");
            }
        }

 导入代码:

  /// <summary>
        /// 导入文件
        /// </summary>
        /// <param name="excelFile"></param>
        /// <returns></returns>
        public ActionResult ImporExcel(HttpPostedFileBase excelFile)
        {
            ReturnJson returnJson = new ReturnJson();
            int saveCount = 0;
            //批量导入数据思路
            //1、获取读取的文件->判断数据类型是否正确;
            //2、把文件转换为二进制数组;
            //3、二进制数组转成内存流;
            //4、利用NPOI把内存流中的数据读取成Excel
            try
            {
                //获取文件后缀
                string fileExtension = Path.GetExtension(excelFile.FileName);
                //判断文件是否为excel表格
                if (".xls".Equals(fileExtension.ToLower()) || ".xlsx".Equals(fileExtension.ToLower()))
                {
                    //声明二进制数组存放文件
                    byte[] fileBytes = new byte[excelFile.ContentLength];
                    //将文件转化为二进制数据组存入fileBytes
                    excelFile.InputStream.Read(fileBytes, 0, excelFile.ContentLength);
                    //将二进制数组转化为内存流
                    MemoryStream excelFileStream = new MemoryStream(fileBytes);
                    //将内存流转化为工作簿
                    IWorkbook workbook = new HSSFWorkbook(excelFileStream);

                    //判断工作簿中是否有工作表
                    if (workbook.NumberOfSheets > 0)
                    {

                        List<LF_product> dbProduct = myModel.LF_product.ToList();
                        List<LF_Units> dbUnits = myModel.LF_Units.ToList();
                        //创建studentVo对象列表-》用于存放导入的学生/用户数据
                        List<studentVo> listStudentVo = new List<studentVo>();

                        //获取第一张工作表
                        ISheet sheet = workbook.GetSheetAt(0);
                        //判断工作表中是否有数据
                        //PhysicalNumberOfRows 获取的时物理行数,不包括那些空行(隔行)的情况
                        if (sheet.PhysicalNumberOfRows > 0)
                        {
                            #region 将Excel表格数据放到DataTable中

                            //将数据先装到datatable中
                            // 定义
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值