ASP.NET MVC

How To Read Data From .CSV File In ASP.NET MVC

In This Article, I’m Going To Tell You How To Read Data From CSV File In MVC

So Let’s begin now.
Step 1
Create a new MVC Web Project.
Step 2
Install-Package Lumen CSV Reader Package From Nuget Package
Step 3
Create A New “Controller\HomeController.cs” File And Add The Following Method Inside.
Step 4
Add Namespace “using LumenWorks.Framework.IO.Csv;”
using LumenWorks.Framework.IO.Csv;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace ReadCSVFileMvc.Controllers
{
    public class HomeController : Controller
    {
        // GET: Home
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Index()
        {
            return View();
        }
        public ActionResult Upload(HttpPostedFileBase upload)
        {
            if (ModelState.IsValid)
            {

                if (upload != null && upload.ContentLength > 0)
                {

                    if (upload.FileName.EndsWith(".csv"))
                    {
                        Stream stream = upload.InputStream;
                        DataTable csvTable = new DataTable();
                        using (CsvReader csvReader =
                            new CsvReader(new StreamReader(stream), true))
                        {
                            csvTable.Load(csvReader);
                        }
                        return View(csvTable);
                    }
                    else
                    {
                        ModelState.AddModelError("File", "This file format is not supported");
                        return View();
                    }
                }
                else
                {
                    ModelState.AddModelError("File", "Please Upload Your file");
                }
            }
            return View();
        }
    }
}

Step 5

Add View For An Upload Action And Put Following Code:

@model System.Data.DataTable
@using System.Data;

<h2>Upload File</h2>
<style>
table, th, td {
  border: 1px solid black;
}
</style>
@using (Html.BeginForm("Upload", "Home", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary()

    <div class="form-group">
        <input type="file" id="dataFile" name="upload" />
    </div>

    <div class="form-group">
        <input type="submit" value="Upload" class="btn btn-default" />
    </div>

    if (Model != null)
    {
        <table>
            <thead>
                <tr>
                    @foreach (DataColumn col in Model.Columns)
                    {
                        <th>@col.ColumnName</th>
                    }
                </tr>
            </thead>
            <tbody>
                @foreach (DataRow row in Model.Rows)
                {
                    <tr>
                        @foreach (DataColumn col in Model.Columns)
                        {
                            <td>@row[col.ColumnName]</td>
                        }
                    </tr>
                }
            </tbody>
        </table>
    }
}

Output:-

Aatisha Dalwadi

I am Aatisha Dalwadi.I Started My Journey As Asp .Net Developer At Vision Infotech.I Completed My MCA From Sarvjanik College Of Enginnering AND Technology.Good Experience In Designing And Development Of Web Applications using C# .Net ,ASP.NET , Microsoft .Net Framework.

Share
Published by
Aatisha Dalwadi

Recent Posts

Testing hk

Testing

2 years ago

Create and Used PIPE in angular

In this article, we have to show Create and Used PIPE in angular

2 years ago

Operation

Testing

2 years ago

Create and Used PIPE in angular

In this article, we have to show Create and Used PIPE in angular

2 years ago

Create and Used PIPE in angular

In this article, we have to show Create and Used PIPE in angular

2 years ago

TETS NEW

test

2 years ago