C# ile Excel’ e Veri Aktarma – Web Tasarım & Programlama
C# EXCEL Programlama Windows Form Örnekleri

C# ile Excel’ e Veri Aktarma

C# ile excel programına veri transfer örneği:

Aşağıdaki gibi bir form oluşturulup datagridview’e veri bağlantısı kuralım. Veri bağlantısı kurma sıkıntısı çekerseniz önceki dersleri inceleyebilirsiniz.

excel_veri_form

Daha sonra Solution Explorer dan  “References” e sağ tıklayarak Add Reference diyoruz. Daha sonra karşımıza  ” Reference Manager ” sayfası gelecektir. Excel’e aktarım işlemi yapacağımız için buradan ” Microsoft.Office.Interop.Excel ” (Microsoft Excel 15.0 Object Library) i seçiyoruz.ve reference ekleme işlemini bitirmiş oluyoruz.

.excel_veri__addreference

Kodlamaya geçiyoruz. Kod satırında en üste

ekliyoruz. Daha sonra Excel’e Aktar butonuna çift tıklayarak aşağıdaki kodları ekliyoruz.

Programı çalıştırıp “Excel’e Aktar”  butonuna bastığınızda Datagrid’ deki verilerin Excel’e aktarıldığını göreceksiniz.

 

DataGridview’de seçili olan satırların aktarılması istenirse DatagridView özelliklerinden SelectionMode özelliği FullRowSelect, MultiSelect özelliği ise True yapıldıktan sonra aşağıdaki kodlar uygulanabilir.

excel_veri__excel

C# Word’ e Veri Aktarma Örneği için Tıklayın.
C# Access Veritabanı Bağlantısı Örneği için Tıklayın.

C# Excele belirli bir koşula bağlı olarak biçimlendirmeli veri aktarma örneği için tıklayın.

csharp_excel_bicimlendir_3

 
Örneğe ait videoyu izleyebilirsiniz.

49 Yorum

  • 5 dataGridView i ayrı butonlarla aktarmaya çalışıyorum kod içinde dataGridView1 dataGridView2 …. diye değiştirerek yazıyorum fakat her seferinde dataGridView1 içerisindekileri aktarıyor. sebebi ne olabilir acaba

  • usta ben excel’e aktardıktan sonra otomatik olarak belgelerim’e kaydetmesini istiyorum. ama bir türlü yapamadım. programın başladığı yere kaydediyorum ama belgelerim’e kaydedemiyorum. Yardımcı olur musunuz?

  • usta dg den excele tarih aktarırken tarihleri sayı olarak aktarıyor. yani 25.06.2017 yi 42940 olarak aktarıyor. nasıl düzeltebilirim

  • Merhabalar hocam bir çok deneme yaptım ama olmadı sürekli aynı hatalarla karşılaştım.Farklı yollarlada yapamaya çalıştım sürekli olarak excel.visable= true da visablenin altını çiziyor. excel.workbooks da da aynı neden kaynaklı olabilir.

  • Merhaba hocam. Bir sorum var. Belki yardimci olabilirsiniz. Nette aradim icinden cikamadim. Bir datagridim var. Orada musteriler ve aldiklari seyler var. Musteri kolonunda mail adresleri var. Bu datagriddeki maillere bir butona tiklayarak aldiklari urunlerin listelerini nasil gonderirim? Datagridin hepsini birden bir maillere gonderebiliyorum. Fakat herkesin kendi mailine ayri ayri gonderemiyorum. Yardimci olursaniz mutlu olurum. En azindan bir fikirde verseniz olur. Basarili derslerinizin takipcisiyim. Kolay gelsin.

  • aspx’te myRange.Value2 = dataGridView1[j, i].Value == null ? “” : dataGridView1[j, i].Value; bu satırda bu kısım dataGridView1[j, i] hata veriyor nasıl değiştirebiliriz burayı ?

  • Paylaşım için tesekkurler, cok isime yaradı. Peki başıkları ve satırları biçimlendirmek için ne yapabiliriz? örnek: tablo çizgileri görünsün, tablodaki başlığa yada içeriğe göre otomatik genişletsin, başlık puntosu vs.. teşekkürler

  • s.a hocam

    WPF de datagrid deki verileri excel aktarmak istiyorum ama olmadı sizin verdiğiniz örnekte datagridwievde olduğu için datagrid de hata veriyor yardımcı olurmusunuz.

  • Ben datagridview den excel e aktardığımda excel salt okunur diyor. Oysaki excel önceden olan bir excel. sadece datagrid den bir satır sildim. Kalanının tekrar exce de görülmesini istiyorum fakat excel imi açtığımda salt okunur diyor. Tamam dediğimde ise sildiğim satır öylece duruyor.

  • hocam bende çalıyor fakat sadece başlıklar geliyor. alt satırları aktarmıyor. ne olaki acaba?

    Excel.Application exceldosya = new Excel.Application();
    exceldosya.Visible = true;
    object Missing = Type.Missing;
    Office.Workbook kitap1 = exceldosya.Workbooks.Add(Missing);
    Office.Worksheet sekme1 = (Excel.Worksheet)kitap1.Sheets[1];
    int sutun = 1;
    int satir = 1;

    for (int j = 0; j dataGridView1.Columns.Count; i++)
    {
    for (int j = 0; j > dataGridView1.Columns.Count; j++)
    {
    Excel.Range myrange = (Excel.Range)sekme1.Cells[satir + i, sutun + j];
    myrange.Value2 = dataGridView1[j, i].Value == null ? “” : dataGridView1[j, i].Value;
    myrange.Select();
    }
    }

  • Merhaba,
    Yaptığınız kodlardan faydalanarak sorunumu halletmeye çalıştım fakat;

    “An unhandled exception of type ‘System.Runtime.InteropServices.COMException’ occurred in mscorlib.dll
    Additional information: HRESULT özel durum döndürdü: 0x800AC472”

    hatası alıyorum. Sorunun nerde olduğunu çözemedim, yarımcı olursanız çok sevinirim..

  • Yazınızdan faydalandım. Teşekkür ederim.
    Microsoft Office’i yüklemeden Excel için Object Library’i referans gösteremedim(open office kullanıyordum). Ancak bir şekilde Microsoft Office kurduktan sonra referans gösterebildim.
    Başarılar dilerim.

  • Merhaba teşekkürler öncelikle. Ancak datagridviewdaki verileri excele aktardıktan sonra programı sadece task manager ile kapatabiliyorum. Neden kaynaklanıyor olabilir teşekkürler

    • Herhangi bir sorun olmaması gerekiyor. Veritabanı bağlantı kısımlarına da bir göz atın isteseniz.
      Yazının altına video da ekledim.

  • Hocam öncelikle emeklerinize sağlık çok faydalı olmuş gerçekten işime yaradı.Ancak şöyle bi sıkıntı var bunula iligli kaynaklar da oldukça kısıtlı.verileri excele aktarırken ortalı olarak rapor etmeyi nasıl yapacam?

    • Teşekkürler. Aşağıda vermiş olduğum kodları incelerseniz textbox’ taki metnin istenilen hücreye nasıl yazdırılabileceğini görebilirsiniz. Sanırım sorununuz da excel’ de belirli hücrelere yazdırma işlemi. Aşağıdaki kodlar çalıştırıldığında textbox’ ta bulunan metnin 2.satır 3. sütuna yazdırılmasını sağladım (5. satır).

      private void button1_Click(object sender, EventArgs e)
      {
      Microsoft.Office.Interop.Excel.Application uygulama = new Microsoft.Office.Interop.Excel.Application();
      uygulama.Visible = true;
      Microsoft.Office.Interop.Excel.Workbook kitap = uygulama.Workbooks.Add(System.Reflection.Missing.Value);
      Microsoft.Office.Interop.Excel.Worksheet sayfa1 = (Microsoft.Office.Interop.Excel.Worksheet)kitap.Sheets[1];
      Microsoft.Office.Interop.Excel.Range alan = (Microsoft.Office.Interop.Excel.Range)sayfa1.Cells[2, 3];
      alan.Value = textBox1.Text;
      }

  • netframework 2 de çalışıyormu acaba çünkü 4 ile yaptım referanslara ekleniyor görünüyor iki de referanslara eklenemiyor bilgi alabilirmiyim.

  • Ben yaklaşık 2-3 ay önce Access veri tabanlı bir program yazdım.Ve verileri excele aktarmam gerktiği için sizin sitenize baktım.Bu vermiş olduğunuz kodlar ile birlikte datareader kullanılamıyor.@recep’in demek istediği olayda bu sanırsam.

  • evet COM bölümünden ekledim ve using kısmına o kod blogunu yazınca tüm kod bloglarımdaki veritabanı bağlantısıyla alakalı kodlar kırmızı renkli altı çizili bir şekil alıyor ve hatalı olarak görüyor…

    Neyse Bu sorunumu başka bir kod blogu ile hallettim using kısmına hiç bişi eklemeden,Datagridview dekileri excele aktarabiliyorum,fakat şablonu oluşturulmuş birexcel oluşturdum bunun içine nasıl akatabilirim ? yardımcı olursanız çok sevinirim.

  • using Excel = Microsoft.Office.Interop.Excel;

    using Microsoft.Office.Interop.Excel;

    Bu kısmı en üste eklediğimizde access veri tabanına ait bağlantı yapılan tüm kodlar "datatable,dataset ..vs"

    çalışmaz hale geliyor ve hata veriyor.Nasıl Düzelte Biiliriz acaba ?

    • Her hangi bir sorun çıkmaması gerekiyor. Solution explorer penceresinde Reference eklediniz mi?

      Reference üzerinde Sağ tık- Add Reference . Sol tarafta COM bölümünden Microsoft Excel 15.0 Object Library.

      • Visual Studio 2017’de Bilgisayarımda add references kısmında Excel adlı hiçbir veri yok referencese nasıl exceli eklerim ?

Yorum yap

Sayfamızı YouTube'da da takip etmek ister misiniz?
Holler Box