Pages - Menu

2016年8月26日 星期五

LinqtoExcel使用class對應不到excel

前言:
       單純讀取excel的好物,最簡單的使用方式,可參考demo 大大的說明
備忘我卡了老半天不知道是為了什麼的錯誤…
建立class來做強型別,少打了一堆字,真的越來越愛用了。

public class Cemploy
    {
        public string sn { get; set; }           
        public string id { get; set; }

    }
注意,這邊一定要打get;set; 這是 欄位和方法的綜合體,get以及set是存取子,
用來讀取和寫入。MSDN
我就是當初沒寫,以為宣告個class就好。導致資料一直無法對應…
然後就卡死了。最後只好先弄個很爛的方式把資料讀出來。
先看一下很爛的方式。

var fileName = System.IO.Path.Combine("Information.xls");
                var excelFile = new ExcelQueryFactory(fileName);

                excelFile.ReadOnly = true;
                var excelContent = excelFile.Worksheet(txtFactory.Text);
                //檢查資料
                foreach (var row in excelContent)
                {
                    string id = row[1];
                }

沒有結構,直接用陣列取值。
比較好的方式是

var fileName = System.IO.Path.Combine("Information.xls");
var excelFile = new ExcelQueryFactory(fileName);

excelFile.AddMapping<Cemploy>(p => p.sn,"sn");
excelFile.AddMapping<Cemploy>(p => p.id, "ID");
var excel = excelFile.Worksheet<Cemploy>("cbc");
foreach (var item in excel)
{
    Console.WriteLine(item.id);
}

有強型別,操作快很多。

沒有留言:

張貼留言