Upload Excel File in MVC and C# code

This blog is regarding import data from excel in Database using MVC 4.0 and C#.
in VIEW Code
@{
    ViewBag.Title = “ImportData”;
   }
@using (Html.BeginForm(“ImportData”, “Admin”FormMethod.Post, new { enctype = “multipart/form-data” }))
{
   <input type=”file” id=”fileToUpload” name=”file” />
   <span id=”spanfile“></span>
   <input type=”submit” id=”btnSubmit” value=”Upload” />
}
In the above line “ImportData” is Action and Admin is the Controller and form method to be posted
In Controller Code
[HttpPost]
public ActionResult ImportData(HttpPostedFileBase file)
{
Excel.Workbook MyBook = null;
Excel.Application MyApp = null;
Excel.Worksheet MySheet = null;
DataTable dtmaster = new DataTable();
string fileLocation = “D:/Mahesh/Uploadfiles/Template.xlsx;
//Server.MapPath(“D:/Mahesh/Content/”) + Request.Files[“file”].FileName;
if (ModelState.IsValid)
{
    if (file.ContentLength > 0)
    {
        string filename = file.FileName;
        string[] extension = new string[] { “.xlsx”“.xls”, “.xlx” };
        string ext = file.FileName.Substring(file.FileName.LastIndexOf(‘.’));
    if (extension.Contains(ext))
       {
           MyApp = new Excel.Application();
           MyApp.Visible false;
           MyBook = MyApp.Workbooks.Open(fileLocation);
           MySheet = (Excel.Worksheet)MyBook.Sheets[1];
           //Excel.
          int lastRow = MySheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
         System.Array columns = (System.Array)MySheet.get_Range(“A” +
         "1", "H" + “1”).Cells.Value;
        for (int j = 1; j <= columns.Length; j++)
           {
            dtmaster.Columns.Add(Convert.ToString(columns.GetValue(1, j)));
           }
           int _row = 0;
        for (int index = 2; index <= lastRow; index++)
           {
              dtmaster.Rows.Add();
               System.Array MyValues = (System.Array)MySheet.get_Range(“A” +
               index.ToString(), “H” + index.ToString()).Cells.Value;
               for (int i = 1; i <= MyValues.Length; i++)
               {
                 dtmaster.Rows[_row][Convert.ToString(dtmaster.Columns[i – 1].ColumnName)]                             = Convert.ToString(MyValues.GetValue(1, i));
               }
             _row++;
          }
    }
     else
     {
     }
    }
   }
  return View();
   }
here iadding data in datatable after that we can add in to database
System.Array columns = (System.Array)MySheet.get_Range(“A” +
“1”, “H” + “1”).Cells.Value;
here “A”, “H” is called Columns in the Excel. we can mention how many columns we have the data

Popular Posts