Excelden Veri Okuma

 

Excel Alanlarını Okuma, Read Excel File (Generic)

Aşağıdaki kod elimizdeki excel veya csv dosyalarını okuyarak istenilen  model içerisine yazacaktır veliste şeklinde geri döndürecektir..
Metodu çağırırken TSource kısmına kendi modelinizi yazmanız gerekir.

Örnek :
 string path = @"C:\Users\BJK\Desktop\export.csv";
 var ex = ReadExcel<My_Model>(path, "export");

  public class My_Model
    {
        public int id { get; set; }
        public string ad{ get; set; }
        public string soyad{ get; set; }
        public string takim{ get; set; }
        public string taklavat{ get; set; }
        public DateTime start { get; set; }
        public DateTime end { get; set; }

    }

 public List<TSourse> ReadExcel<TSourse>(string path, string sheetName) where TSourse : new()
        {
            var objList = new List<TSourse>();
            try
            {
                using (var excelFile = new ExcelQueryFactory(path))
                {
                    var artistAlbums = from a in excelFile.Worksheet(sheetName) select a;

                    var obj = new TSourse();
                    var myType = obj.GetType();
                    var props = new List<PropertyInfo>(myType.GetProperties());

                    foreach (var row in artistAlbums)
                    {
                        obj = new TSourse();
                        foreach (var prop in props)
                        {
                            //Convert.ChangeType(value, propertyInfo.PropertyType)
                            var t = Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType;

                            if ((t == typeof(int) || t == typeof(double)) && string.IsNullOrEmpty(row[prop.Name]))
                            {
                                prop.SetValue(obj, Convert.ChangeType(0, t), null);
                            }
                            else if (t == typeof(bool) && string.IsNullOrEmpty(row[prop.Name]))
                            {
                                prop.SetValue(obj, Convert.ChangeType(false, t), null);
                            }
                            else if (t == typeof(DateTime) && string.IsNullOrEmpty(row[prop.Name]))
                            {
                                prop.SetValue(obj, Convert.ChangeType("1/1/0001 12:00:00 AM", t), null);
                            }
                            else
                            {
                                var safeValue = (row[prop.Name].Value == null) ? null : Convert.ChangeType(row[prop.Name].Value, t);
                                prop.SetValue(obj, safeValue, null);
                            }
                        }
                        objList.Add(obj);
                    }
                }
                return objList;
            }
            catch (Exception ex)
            {
                return null;
            }
        }

Okul Zil Programı

yilsoftzil

9786059223690
logo5

Esma-ül Hüsna

Ziyaretçi İstatistikleri

Bugün176
Dün366
Bu hafta1753
Bu ay7262
Hepsi810480