Linq2Excel: Truy vấn Excel bằng Linq

Linq2Excel hỗ trợ bạn truy vấn dữ liệu Excel bằng Linq như sample sau:

   1: var repo = new ExcelQueryFactory();

   2: repo.FileName = "pathToExcelFile";

   3:  

   4: var peopleWithSiblings = from p in repo.Worksheet<Person>()

   5:                          where p.Siblings > 0

   6:                          select p;

Trong trường hợp này, các property name của class Person có header tương tự trong các columns của file excel tại Sheet1.

 

Trong trường hợp, header của các column trong file Excel tại sheet1 không giống như tên các property của class, bạn dùng hàm AddMapping như sau:

   1: public class ExcelStudentRepository

   2:    {

   3:        /// <summary>

   4:        /// Get all Student from excel file

   5:        /// </summary>

   6:        /// <param name="excelFile"></param>

   7:        /// <returns></returns>

   8:        public IList<ExcelStudent> GetAll(string excelFile)

   9:        {

  10:            var excel = new ExcelQueryFactory(excelFile);

  11:            excel.AddMapping<ExcelStudent>(student => student.MSV, "MSV");

  12:            excel.AddMapping<ExcelStudent>(student => student.HoDem, "Ho dem");

  13:            excel.AddMapping<ExcelStudent>(student => student.NgaySinh, "ngay sinh");

  14:            excel.AddMapping<ExcelStudent>(student => student.NienKhoa, "nien khoa");

  15:            excel.AddMapping<ExcelStudent>(student => student.Ten, "ten");

  16:            excel.AddMapping<ExcelStudent>(student => student.Phai, "phai");

  17:  

  18:            var students = from s in excel.Worksheet<ExcelStudent>()

  19:                           select s;

  20:  

  21:            return students.ToList();

  22:  

  23:  

  24:        }

  25:  

  26:    }

Linq2Excel sẽ Map thuộc tỉnh như: “HoDem” của class ExcelStudent với column có tên là “ho dem” trong sheet1 của Excel

 

Chi tiết hơn về LinqtoExcel, các bạn xem tại đây.

One thought on “Linq2Excel: Truy vấn Excel bằng Linq

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s