@{
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)
{
@dc.ColumnName |
}
@foreach (DataRow dr in Model.Rows)
{
@foreach (DataColumn dc in Model.Columns)
{
@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();
}