@{ ViewData["Title"] = "UploadCSV"; Layout = "~/Views/Shared/_Layout.cshtml"; } @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers @using System.Data; @model DataTable

UploadCSV

@if (Model != null) {
@foreach (DataColumn dc in Model.Columns) { } @foreach (DataRow dr in Model.Rows) { @foreach (DataColumn dc in Model.Columns) { } }
@dc.ColumnName
@dr[dc.ColumnName]
} Controller: public IActionResult UploadCSV() { return View(); } [HttpPost] public IActionResult UploadCSV(IFormFile postedFile) { if (postedFile != null) { string path = Path.Combine(this._env.WebRootPath, "files"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string fileName = Path.GetFileName(postedFile.FileName); string filePath = Path.Combine(path, fileName); using (FileStream stream = new FileStream(filePath, FileMode.Create)) { postedFile.CopyTo(stream); } var csvData = System.IO.File.ReadAllText(filePath).ToString(); DataTable dt = new DataTable(); bool firstRow = true; if(csvData.Length > 0) { foreach (string row in csvData.Split('\n')) { if (!string.IsNullOrEmpty(row)) { if (!string.IsNullOrEmpty(row)) { if (firstRow) { foreach (string cell in row.Split(',')) { dt.Columns.Add(cell.Trim()); } firstRow = false; } else { dt.Rows.Add(); int i = 0; foreach (string cell in row.Split(',')) { dt.Rows[dt.Rows.Count - 1][i] = cell.Trim(); i++; } } } } } } return View(dt); } return View(); }