Get all the values from excel file by using linqtoexcel

12,922

Solution 1

Try this (expanding on @Sachu's comment to the question) -

public ActionResult ExcelRead()
{
    string pathToExcelFile = ""
    + @"C:\MyFolder\ProjectFolder\sample.xlsx";

    string sheetName = "Sheet1";

    var excelFile = new ExcelQueryFactory(pathToExcelFile);
    var getData = from a in excelFile.Worksheet(sheetName) select a;
    string getInfo = String.Empty;

    foreach (var a in getData)
    {
        getInfo += "Name: "+ a["Name"] +"; Amount: "+ a["Amount"] +">>   ";

    }
    ViewBag.excelRead = getInfo;
    return View();
}

Solution 2

Make the getDate as .ToList()

var getData = (from a in excelFile.Worksheet(sheetName) select a);
List<string> getInfo = new List<string>();

foreach (var a in getData)
{
    getInfo.Add("Name: "+ a["Name"] +"; Amount: "+ a["Amount"] +">>   ");

}
ViewBag.excelRead = getInfo;
return View();

Then pass this to the view and do a foreach loop with @ViewBag.excelRead

    foreach (var data in @ViewBag.excelRead)
    {
    .....
    }

Hope this helps

Share:
12,922
Shihan Khan
Author by

Shihan Khan

Updated on June 05, 2022

Comments

  • Shihan Khan
    Shihan Khan almost 2 years

    I'm using linqtoexcel in my asp.net mvc 4 project to read an excel file & get all the values from there. But I'm only getting the values of last row. Here are my codes,

    Controller

        public ActionResult ExcelRead()
        {
            string pathToExcelFile = ""
            + @"C:\MyFolder\ProjectFolder\sample.xlsx";
    
            string sheetName = "Sheet1";
    
            var excelFile = new ExcelQueryFactory(pathToExcelFile);
            var getData = from a in excelFile.Worksheet(sheetName) select a;
    
            foreach (var a in getData)
            {
                string getInfo = "Name: "+ a["Name"] +"; Amount: "+ a["Amount"] +">>   ";
                ViewBag.excelRead = getInfo;
            }
            return View();
        }
    

    View

    @ViewBag.excelRead
    

    How can I get the values from all the rows? Need this help badly! Thanks.