LinqToExcel to load Dictionary

后端 未结 2 1027
予麋鹿
予麋鹿 2020-12-22 02:44

I have the following worked out but quite less than elegant. I\'d like to work this out with ToDictionary if possible. Thank you for any help as I\'m pretty new.



        
2条回答
  •  萌比男神i
    2020-12-22 03:13

    You can filter the values using a sigle LINQ query.This will return the name and number columns in the excel:

        var sampleExcel = new ExcelQueryFactory(@"I:\Book1.xlsx");
        var sampleWorksheet = from workSheet in sampleExcel.Worksheet("Sheet1") select workSheet;
        var selectedValues = from excelRow in sampleExcel.Worksheet()
           select new { name = excelRow[0], number =Convert.ToInt32(excelRow[1]) };
            foreach (var item in selectedValues)
            {
                Console.WriteLine(string.Format("Name is {0} ,number is {1}",item.name,item.number));
            }
    
    
            Dictionary dict = new Dictionary();
    
            foreach (var item in selectedValues)
            {
                dict.Add(item.number, item.name);
                Console.WriteLine(string.Format("Name is {0} ,number is {1}", item.name, item.number));
            }
    

    Equivalent lambda expression for the above LINQ query:

    var selectedValues1 = sampleExcel.Worksheet().Select(x => new { name = x[0], number = x[1] }); 
    

提交回复
热议问题