uploading and reading from an excel file in asp.net core 2

前端 未结 5 1293
野趣味
野趣味 2020-12-20 08:35

previously Asp.Net MVC had this third party library which easily allowed uploading and reading from an excel file called Excel Data Reader. We didn\'t need to have the file

5条回答
  •  -上瘾入骨i
    2020-12-20 08:56

    First upload your excel file and read the excel file record using asp.net core 3.1.

    using System;
    using Microsoft.AspNetCore.Mvc;
    using ExcelFileRead.Models;
    using Microsoft.AspNetCore.Hosting;
    using System.IO;
    using OfficeOpenXml;
    using System.Linq;
    
    namespace ExcelFileRead.Controllers
     {
     public class HomeController : Controller
      {
    
        private readonly IHostingEnvironment _hostingEnvironment;
        public HomeController(IHostingEnvironment hostingEnvironment)
        {
            _hostingEnvironment = hostingEnvironment;
        }
        public ActionResult File()
        {
            FileUploadViewModel model = new FileUploadViewModel();
            return View(model);
        }
        [HttpPost]
        public ActionResult File(FileUploadViewModel model)
        {
            string rootFolder = _hostingEnvironment.WebRootPath;
            string fileName = Guid.NewGuid().ToString() + model.XlsFile.FileName;
            FileInfo file = new FileInfo(Path.Combine(rootFolder, fileName));
            using (var stream = new MemoryStream())
            {
                model.XlsFile.CopyToAsync(stream);
                using (var package = new ExcelPackage(stream))
                {
                    package.SaveAs(file);
                }
            }
    
            using (ExcelPackage package = new ExcelPackage(file))
            {
                ExcelWorksheet worksheet = package.Workbook.Worksheets.FirstOrDefault();
                if (worksheet == null)
                {
    
                    //return or alert message here
                }
                else
                {
    
                    var rowCount = worksheet.Dimension.Rows;
                    for (int row = 2; row <= rowCount; row++)
                    {
                        model.StaffInfoViewModel.StaffList.Add(new StaffInfoViewModel
                        {
                            FirstName = (worksheet.Cells[row, 1].Value ?? string.Empty).ToString().Trim(),
                            LastName = (worksheet.Cells[row, 2].Value ?? string.Empty).ToString().Trim(),
                            Email = (worksheet.Cells[row, 3].Value ?? string.Empty).ToString().Trim(),
                        });
                    }
                    
                }
            }
            return View(model);
        }
    
      }
    }
    

    For more details(step by step)

    https://findandsolve.com/articles/how-to-read-column-value-from-excel-in-aspnet-core-or-best-way-to-read-write-excel-file-in-dotnet-core

提交回复
热议问题