jxycms
5/19/2019 - 9:27 AM

import excel to sql server

1. in startup.cs
 
services.AddSingleton<IFileProvider>(
  new PhysicalFileProvider(
      Path.Combine(Directory.GetCurrentDirectory(), "wwwroot")));

2. in controller

#region Upload Users
[HttpPost("UploadUsers"), DisableRequestSizeLimit]
[NoCache]
[ProducesResponseType(typeof(ApiResponse), 200)]
[ProducesResponseType(typeof(ApiResponse), 400)]
public IActionResult UploadUsers()
{
    try
    {
        var httpRequest = HttpContext.Request;
        if (httpRequest.Form.Files.Count > 0)
        {
            var uploadFile = httpRequest.Form.Files[0];  // get the uploaded file
            if (uploadFile != null && uploadFile.Length > 0)
            {
                var path = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", @"ImportUsers.xlsx");
                if (System.IO.File.Exists(path))
                {
                    System.IO.File.Delete(path);
                }

                using (var stream = new FileStream(path, FileMode.Create))
                {
                    uploadFile.CopyTo(stream);
                    stream.Close();
                }
                FileInfo file = new FileInfo(path);
                using (ExcelPackage package = new ExcelPackage(file))
                {
                    ExcelWorksheet workSheet = package.Workbook.Worksheets["Sheet1"];
                    int totalRows = workSheet.Dimension.Rows;

                    List<User> userList = new List<User>();

                    for (int i = 3; i <= totalRows; i++)
                    {
                        if (workSheet.Cells[i, 1].Value != null)
                        {
                            StringBuilder builder = new StringBuilder();
                            builder.Append(share.RandomString(4, true));
                            builder.Append(share.RandomNumber(1000, 9999));
                            builder.Append(share.RandomString(2, false));
                            userList.Add(new User()
                            {
                                Account = workSheet.Cells[i, 1].Value == null ? "" : workSheet.Cells[i, 1].Value.ToString(),
                                Password = builder.ToString(),
                                BussinessName = workSheet.Cells[i, 2].Value == null ? "" : workSheet.Cells[i, 2].Value.ToString(),
                                BillingStreetNumber = workSheet.Cells[i, 3].Value == null ? "" : workSheet.Cells[i, 3].Value.ToString(),
                                BillingAddressLine = workSheet.Cells[i, 4].Value == null ? "" : workSheet.Cells[i, 4].Value.ToString(),
                                BillingSuburb = workSheet.Cells[i, 5].Value == null ? "" : workSheet.Cells[i, 5].Value.ToString(),
                                BillingState = workSheet.Cells[i, 6].Value == null ? "" : workSheet.Cells[i, 6].Value.ToString(),
                                BillingPostCode = workSheet.Cells[i, 7].Value == null ? "" : workSheet.Cells[i, 7].Value.ToString(),
                                ShippingStreetNumber = workSheet.Cells[i, 8].Value == null ? "" : workSheet.Cells[i, 8].Value.ToString(),
                                ShippingAddressLine = workSheet.Cells[i, 9].Value == null ? "" : workSheet.Cells[i, 9].Value.ToString(),
                                ShippingSuburb = workSheet.Cells[i, 10].Value == null ? "" : workSheet.Cells[i, 10].Value.ToString(),
                                ShippingState = workSheet.Cells[i, 11].Value == null ? "" : workSheet.Cells[i, 11].Value.ToString(),
                                ShippingPostCode = workSheet.Cells[i, 12].Value == null ? "" : workSheet.Cells[i, 12].Value.ToString(),
                                Phone = workSheet.Cells[i, 13].Value == null ? "" : workSheet.Cells[i, 13].Value.ToString(),
                                CompanyPhone = workSheet.Cells[i, 14].Value == null ? "" : workSheet.Cells[i, 14].Value.ToString(),
                                Mobile = workSheet.Cells[i, 15].Value == null ? "" : workSheet.Cells[i, 15].Value.ToString(),
                                Email = workSheet.Cells[i, 16].Value == null ? "" : workSheet.Cells[i, 16].Value.ToString()
                            });
                        }
                    }
                    package.Stream.Close();
                    package.Dispose();
                    trojantradingDbContext.Users.AddRange(userList);
                    trojantradingDbContext.SaveChanges();
                    trojantradingDbContext.Dispose();
                }
                return Ok(new ApiResponse
                {
                    Status = "success",
                    Message = " PRICE LIST Pdf file uploaded."
                });
            }
        }
        return Ok(new ApiResponse
        {
            Status = "fail",
            Message = "Upload file is empty"
        });
    }
    catch (Exception ex)
    {
        return Ok(new ApiResponse
        {
            Status = "fail",
            Message = ex.Message
        });
    }
}
#endregion