none
MVC - Excel'den veri çekme RRS feed

  • Soru

  • Merhaba,

    Mvc ile oluşturdugum bir sayfada görüntülenecek verileri excel'den çekmem gerekiyor. Bunu nasıl yapabilirim ve webgrid'de göstermem mümkün mü? 

    Teşekkürler.

    28 Nisan 2015 Salı 12:47

Yanıtlar

  • Önce bir viewmodel oluşturun;

    public class BirViewModel
    {
        public int Id { get; set; }
        public string Ad { get; set; }
        public string Soyad { get; set; }
        public string TcKimlikNo { get; set; }
        .
        .
    }

    Daha sonra datatable inizi datarow a cast edip yeni bir IEnumerable hazırlayıp view'e gönderin;

    return View(datatable.Rows.Cast<DataRow>().Select(p=> new BirViewModel() { Id = int.Parse(p["Sıra No"].ToString(), Ad = p["Ad"].ToString(), Soyad = p["Soyad"].ToString(), TcKimlikNo = p["TC Kimlik No"].ToString() }).ToList());

    Sonra viewde;

    @model IEnumerable<BirViewModel>
    
    @{
        ViewBag.Title = "Liste";
        var grid = new WebGrid(Model);
    }

    gibi kullanın


    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    28 Nisan 2015 Salı 14:03
    Moderatör

Tüm Yanıtlar

  • OleDb ile excel e bağlanıp sorgu çekebilirsin.

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    28 Nisan 2015 Salı 13:29
    Moderatör
  • OleDb ile excel e bağlanıp sorgu çekebilirsin.

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    controller kısmında 

    adapter.fill (datatable); 

    kısmından sonra verileri view tarafında nasıl görüntüleyebilirim?

    28 Nisan 2015 Salı 13:33
  • Önce bir viewmodel oluşturun;

    public class BirViewModel
    {
        public int Id { get; set; }
        public string Ad { get; set; }
        public string Soyad { get; set; }
        public string TcKimlikNo { get; set; }
        .
        .
    }

    Daha sonra datatable inizi datarow a cast edip yeni bir IEnumerable hazırlayıp view'e gönderin;

    return View(datatable.Rows.Cast<DataRow>().Select(p=> new BirViewModel() { Id = int.Parse(p["Sıra No"].ToString(), Ad = p["Ad"].ToString(), Soyad = p["Soyad"].ToString(), TcKimlikNo = p["TC Kimlik No"].ToString() }).ToList());

    Sonra viewde;

    @model IEnumerable<BirViewModel>
    
    @{
        ViewBag.Title = "Liste";
        var grid = new WebGrid(Model);
    }

    gibi kullanın


    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    28 Nisan 2015 Salı 14:03
    Moderatör
  • teşekkürler.

    28 Nisan 2015 Salı 14:04
  •  

    Tablo boş geliyor. Acaba connectionstringte mi bir hata var? 

    string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + System.IO.Directory.GetCurrentDirectory() + "" + "\\MyExcel.xls;Extended Properties = 'Excel 12.0;';";

                OleDbConnection Conn = new OleDbConnection(ConnectionString);
                OleDbDataAdapter adap = new OleDbDataAdapter("select * from [Sayfa1$A:F]", Conn);
                DataTable dt = new DataTable();
                adap.Fill(dt);

                return View(dt.Rows.Cast<DataRow>().Select(p=> new Liste() { Sira = int.Parse(p["Sıra No"].ToString()), Isim = p["Ad"].ToString(), Soyisim = p["Soyad"].ToString()}).ToList());

                
    28 Nisan 2015 Salı 14:29
  • Excel dosyanızı App_Data folder'ine koyduktan sonra;

    string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/MyExcel.xls;Extended Properties = \"Excel 12.0;\";";

    şeklinde deneyin. Yanlız dosya xls mi xlsx mi? Extended Prop.'a 12.0 yazmışsınız da


    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    28 Nisan 2015 Salı 18:26
    Moderatör
  • Excel dosyanızı App_Data folder'ine koyduktan sonra;

    string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/MyExcel.xls;Extended Properties = \"Excel 12.0;\";";

    şeklinde deneyin. Yanlız dosya xls mi xlsx mi? Extended Prop.'a 12.0 yazmışsınız da


    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    dedğiniz şekilde düzelttim. veriler listelendi, teşekkürler.

    Birkaç sorum daha var;

    excel sürekli güncellenecek ve görüntülenecek veriler de değişecek, app data klasöründen değil de masaüstünden çekmesi mümkün mü?

    excel verilerinde sira no ya nasıl göre işlem yaptırabilirim? yani where koşulu bildiğimiz gibi mi

    ve excelden alınan verileri veri tabanındaki bir tabloya nasıl kaydedebilirim

    • Düzenleyen moonyy90 29 Nisan 2015 Çarşamba 06:03
    29 Nisan 2015 Çarşamba 05:54
  • Sizin uygulamanız internette olmayacak mı, masaüstüne nasıl ulaşsın ki?

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    29 Nisan 2015 Çarşamba 06:23
    Moderatör
  • Sizin uygulamanız internette olmayacak mı, masaüstüne nasıl ulaşsın ki?

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    haklısınız,  güncellen veriyi tutmanın bir yolu olup olmadıgını merak etmiştim.

    teşekkürler yardımlarınız için.

    29 Nisan 2015 Çarşamba 06:27